Как в WPF получить ссылку на команду, которую гиперссылка должна вызывать из свойства объекта?
Я создаю приложение WPF, используя шаблон MVVM. Список в главном окне отображает гиперссылки. Каждая гиперссылка будет вызывать одно из свойств ICommand модели представления при нажатии на нее. Как мне указать, какой ICommand должен быть вызван?
Вот что я пробовал до сих пор: гиперссылки содержатся в свойстве ViewModel.Hyperlinks, которое связано как ItemsSource для поля со списком. Свойство Hyperlinks содержит объекты типа MyHyperlink:
public class MyHyperlink
{
public string Text { get; set; }
public string ViewModelCommand { get; set; }
public int RecordID { get; set; }
}
Свойство MyHyperlink.ViewModelCommand содержит имя модели представления ICommand, которая должна вызываться при нажатии на гиперссылку. Я хочу использовать это значение для указания PropertyPath для свойства Command элемента управления Hyperlink WPF
,
Я попытался создать ресурс PropertyPath для поля со списком с именем команды, но WPF не примет это. Вот мой XAML:
<ListBox ItemsSource="{Binding Hyperlinks}">
<ListBox.Resources>
<PropertyPath x:Key="CommandPath" Path="{Binding ViewModelCommand}" />
</ListBox.Resources>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Hyperlink Command="{StaticResource CommandPath}"
CommandParameter="{Binding Path=RecordID}">
<TextBlock Text="{Binding Text}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Как мне указать, какая ICommand должна вызываться при нажатии на гиперссылку? Я создаю ресурс (как показано выше), или это сделано другим способом? Мне нужно сделать это в XAML - я не хочу прибегать к программному обеспечению. Спасибо за вашу помощь!