1

ユーザーが uri を入力する TextBox があります。これがハイパーリンクの NavigateUri プロパティになり、ユーザーがリンクをクリックしてページを開くことができるようになります。

<!-- Input TextBox -->
<TextBox x:Name="linkBox" Width="175" Text="{Binding Path=DocRef, Mode=TwoWay}" />

<!-- Hyperlink -->
<TextBlock>
    <Hyperlink DataContext="{Binding ElementName=linkBox}" NavigateUri="{Binding 
               Path=Text}" RequestNavigate="Hyperlink_RequestNavigate">
        <TextBlock DataContext="{Binding ElementName=linkBox}" 
                   Text="{Binding Path=Text}" />
    </Hyperlink>
</TextBlock>

これは、TextBox に (絶対) uri 全体を入力する場合に機能します。ただし、ユーザーは Uri の「document.extn」ビットのみを入力し、アプリケーションに残りのリソース (つまり、「http://www.example.com/」ビット) を付加させたいと考えています。uri の基本部分を設定し、ドキュメント参照 (できれば xaml) を追加するにはどうすればよいですか? 完璧に聞こえる Hyperlink の BaseUri プロパティに出くわしましたが、残念ながら保護されているため、これは機能しません。

<Hyperlink DataContext="{Binding ElementName=linkBox}" 
           BaseUri="http://www.example.com/" NavigateUri="{Binding Path=Text}" 
           RequestNavigate="Hyperlink_RequestNavigate">

誰でも手伝ってもらえますか?

4

2 に答える 2

2

MultiBinding必要な2つの文字列を結合するために使用できる場合があります

<Hyperlink DataContext="{Binding ElementName=linkBox}"  RequestNavigate="Hyperlink_RequestNavigate">
    <Hyperlink.NavigateUri>
       <MultiBinding StringFormat="{}{0}{1}">
           <Binding FallbackValue="http://www.example.com/" />
           <Binding Path="Text" />
        </MultiBinding>
    </Hyperlink.NavigateUri>
</Hyperlink>
于 2013-07-31T05:08:42.763 に答える
0

インターフェイスを使用してカスタム コンバーターを作成し、IValueConverter追加されたベース uri を取得できます。

于 2013-07-31T04:46:59.163 に答える