Использование элемента управления гиперссылкой WPF с динамическими URL - PullRequest
1 голос
/ 07 мая 2011

Отказ от ответственности: я действительно новичок в WPF, поэтому я прошу прощения за глупый вопрос.

У меня есть форма WPF, которая содержит тег гиперссылки, который отлично работает, если URL жестко задан в XAML,вот так:

    <TextBlock Margin="171,148,129,70">
        <Hyperlink NavigateUri="http://www.somesite.com" RequestNavigate="Hyperlink_RequestNavigate">
            <TextBlock Text="Open site in browser"  />
        </Hyperlink>
    </TextBlock>

Со следующим кодом:

    protected void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
    {
        Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
        e.Handled = true;
    }

Я хотел бы сделать динамический целевой URL этой гиперссылки.Я добавил новое окно (вызывается как диалог), чтобы получить новую ссылку, которая затем присваивается закрытому члену класса главного окна по его «истинному» возвращению.Как я могу настроить разметку / код XAML для постоянного использования члена класса (я установлю значение по умолчанию в конструкторе) вместо жесткого кодирования его в теге?

Заранее спасибои извините за нубский вопрос.Я должен использовать неправильные условия поиска.

Ответы [ 2 ]

2 голосов
/ 07 мая 2011

Вы можете использовать кнопку в стиле, похожую на гиперссылку, и привязать CommandParameter к вашему URL. Затем вы бы установили Command для запуска что-то вроде этого:

public void OpenWebsite(string url)
{ 
    Process.Start(url);
}
0 голосов
/ 07 мая 2011

Просто измените метод гиперссылки _requestNavigate, чтобы использовать эту приватную переменную:

protected void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
    Process.Start(new ProcessStartInfo(privateVariableName));
    e.Handled = true;
}
...