WPFで、ハイパーリンクがオブジェクトプロパティから呼び出す必要のあるコマンドへの参照を取得するにはどうすればよいですか?
MVVMパターンを使用してWPFアプリケーションを作成しています。メインウィンドウのリストボックスにハイパーリンクが表示されます。各ハイパーリンクは、クリックされるとビューモデルのICommandプロパティの1つを呼び出します。どのICommandを呼び出すかを指定するにはどうすればよいですか?
これまでに試したことは次のとおりです。ハイパーリンクは、リストボックスのItemsSourceとしてバインドされているViewModel.Hyperlinksプロパティに含まれています。Hyperlinksプロパティには、タイプMyHyperlinkのオブジェクトが含まれています。
public class MyHyperlink
{
public string Text { get; set; }
public string ViewModelCommand { get; set; }
public int RecordID { get; set; }
}
MyHyperlink.ViewModelCommandプロパティには、ハイパーリンクがクリックされたときに呼び出されるビューモデルICommandの名前が含まれています。その値を使用して、WPFハイパーリンクコントロールのCommandプロパティのPropertyPathを指定したいと思います。コマンドの名前でリストボックスの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で行う必要があります。コードビハインドに頼りたくありません。ご協力いただきありがとうございます!