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>
그러나 Hyperlink 클래스에는 데이터 바인딩에 적합한 text 또는 content 속성 (즉, 종속성 속성)이 없습니다.
어떤 아이디어?
답변
이상하게 보이지만 작동합니다. 우리는 앱의 약 20 곳에서 작업을 수행합니다. 텍스트를 “content”에 넣으면 Hyperlink
묵시적으로 a를 구성 <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}" />
답변
이것은 “페이지”에서 나를 위해 일했습니다.
<TextBlock>
<Hyperlink NavigateUri="{Binding Path}">
<TextBlock Text="{Binding Path=Path}" />
</Hyperlink>
</TextBlock>
답변
위의 Windows Store 앱 (및 Windows Phone 8.1 RT 앱)에서 작동하지 않으면 HyperlinkButton을 사용하고 Content 및 NavigateUri 속성을 ususal로 바인딩하십시오.