Есть ли способ добавить привязку к свойству NavigateUri на HyperLink в WPF? - PullRequest
0 голосов
/ 29 декабря 2010

Я добавляю ссылку на свое приложение WPF с помощью гиперссылки в TextBox:

<TextBlock Margin="480,92,460,713" Height="24">
 <Hyperlink NavigateUri="{Binding MyLink}" RequestNavigate="Hyperlink_RequestNavigate">My Link</Hyperlink>
</TextBlock>

Привязка "MyLink" не работает. Ссылка, которую мне нужно использовать, содержит строку запроса с переменной, которую мне нужно динамически изменить в коде. Если я пытаюсь даже жестко закодировать ссылку в XAML, я получаю сообщение об ошибке, потому что в строке запроса есть переменная с амперсандом.

Моя ссылка работает, когда я указываю на такой сайт, как Google. но мне нужно установить его в коде c # и иметь возможность установить мою переменную в строке запроса. Есть ли способ сделать это? спасибо!

1 Ответ

1 голос
/ 29 декабря 2010

То, что вы делаете, должно работать ...

Чтобы проверить это, создайте приложение WPF по умолчанию и поместите следующий код в сетку Window1.xaml ...

        <TextBlock>
             <Hyperlink NavigateUri="{Binding}" RequestNavigate="Hyperlink_RequestNavigate">My Link</Hyperlink>
        </TextBlock>

... в Window1.xaml.cs добавить это ...

    public Window1()
    {
        InitializeComponent();

        this.DataContext = "whatever the heck i want";
    }

    private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
    {
        //e.Uri will display "whatever the heck i want" 
        //which would allow you to do whatever you want 
        //with the URL at that point

        Process.Start(new ProcessStartInfo("url_you_want_to_use"));
        e.Handled = true;
    }
...