ฉันจะตั้งค่าข้อความของ WPF Hyperlink ผ่านการผูกข้อมูลได้อย่างไร


129

ใน WPF ฉันต้องการสร้างไฮเปอร์ลิงก์ที่นำทางไปยังรายละเอียดของวัตถุและฉันต้องการให้ข้อความของไฮเปอร์ลิงก์เป็นชื่อของวัตถุ ตอนนี้ฉันมีสิ่งนี้:

<TextBlock><Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}">Object Name</Hyperlink></TextBlock>

แต่ฉันต้องการให้ "ชื่อวัตถุ" ผูกกับชื่อจริงของวัตถุ ฉันต้องการทำสิ่งนี้:

<TextBlock><Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}" Text="{Binding Path=Name}"/></TextBlock>

อย่างไรก็ตามคลาสไฮเปอร์ลิงก์ไม่มีคุณสมบัติข้อความหรือเนื้อหาที่เหมาะสำหรับการผูกข้อมูล (นั่นคือคุณสมบัติการอ้างอิง)

ความคิดใด ๆ ?

คำตอบ:


212

มันดูแปลก แต่ก็ใช้ได้ เราทำในสถานที่ต่างๆประมาณ 20 แห่งในแอปของเรา Hyperlinkสร้างโดยปริยาย<Run/>ถ้าคุณใส่ข้อความใน "เนื้อหา" แต่ใน. NET 3.5 <Run/>จะไม่ยอมให้คุณเชื่อมโยงกับมันดังนั้นคุณต้องใช้ไฟล์TextBlock.

<TextBlock>
    <Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}">
        <TextBlock Text="{Binding Path=Name}"/>
    </Hyperlink>
</TextBlock>

อัปเดต : โปรดทราบว่าในขณะนี้. NET 4.0 คุณสมบัติ Run.Textสามารถถูกผูกมัด:

<Run Text="{Binding Path=Name}" />

นั่นหมายความว่าคุณสมบัติเนื้อหาของไฮเปอร์ลิงก์คือคอลเลกชันอินไลน์ใช่หรือไม่
Mal Ross

4
เป็นแค่ฉันเองหรือนี่ทำให้ลิงก์ไม่สามารถใช้งานได้จริง
Tobias Valinski

คุณยังคงต้องจัดการ RequestNavigate
ม้วน


1

บนแอพ Windows Store (และแอพ Windows Phone 8.1 RT) ตัวอย่างข้างต้นใช้งานไม่ได้ให้ใช้ HyperlinkButton และผูกคุณสมบัติ Content และ NavigateUri เป็นการใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.