Стилизация кнопки гиперссылки внутри шаблона данных в Silverlight - PullRequest
0 голосов
/ 13 мая 2010

Как изменить визуальное состояние кнопки гиперссылки внутри таблички данных? В основном я пытаюсь перебрать гиперссылки и установить их визуальное состояние в активное или неактивное в соответствии с текущим URL. Кнопки гиперссылки расположены внутри таблицы данных элемента управления. Источник элементов привязан к списку, где ссылка - это мой пользовательский класс для ссылок, который содержит только некоторые свойства для URI и заголовка.

Есть ли лучшая практика для стилизации активной гиперссылки в навигационном приложении silverlight? То, что я использую, является подходом шаблонного кода формы шаблона проекта приложения silverlight nav.

1 Ответ

1 голос
/ 18 мая 2010

Я думаю, что лучший способ добиться этого - привязать свойства IsEnabled HyperlinkButtons к вашему URL и поместить конвертер между ними.

Я полагаю, у вас есть что-то вроде этого:

<ListBox
  ItemsSource="{Binding Path=Links}">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <HyperlinkButton
        NavigateUri="{Binding Path=LinkUrl}"
        Content="{Binding Path=LinkUrl}" />
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

Таким образом, вы можете добавить привязку IsEnabled следующим образом:

<ListBox
  ItemsSource="{Binding Path=Links}">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <HyperlinkButton
        IsEnabled="{Binding Path=LinkUrl, Converter={StaticResource LinkUrlToIsEnabledConverter}}"
        NavigateUri="{Binding Path=LinkUrl}"
        Content="{Binding Path=LinkUrl}" />
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

и затем в конвертере сделайте, например ::10000

public object Convert(...)
{
  var url = (Uri)value;
  if (url.AbsolutePath.EndsWith(".html"))
    return true;
  return false;
}

Ура, Алекс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...