Я думаю, что лучший способ добиться этого - привязать свойства 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;
}
Ура, Алекс