DataGrid
にハイパーリンクを挿入し、MVVMパターンを使用してRequestNavigate
の動作を実装する方法を見つけることがあります。MVVMパターンでハイパーリンクを使用するセルテンプレート
私は今まで多くのソリューションを試しましたが、いずれも機能していません。私を手伝ってくれますか?
これは私のXAMLコードです:
<dgWPFCtrl:ExtDataGridTemplateColumn Header="Link to XXX" Width="*">
<dgWPFCtrl:ExtDataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock >
<Hyperlink NavigateUri="{Binding Path=ID_HTTP_LINK}"
>
<TextBlock Text="{Binding Path=ID_HTTP_LINK}"/>
<i:Interaction.Triggers>
<i:EventTrigger EventName="RequestNavigate">
<WPFCtrl:EventToCommand
PassEventArgsToCommand="True"
Command="{Binding Path=OpenLinkCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Hyperlink>
</TextBlock>
</DataTemplate>
</dgWPFCtrl:ExtDataGridTemplateColumn.CellTemplate>
</dgWPFCtrl:ExtDataGridTemplateColumn>
と相対ICommand
開発次:私が間違っている
//Command for open link
RelayCommand _openLinkCommand;
public ICommand OpenLinkCommand
{
get
{
if (_openLinkCommand == null)
_openLinkCommand = new RelayCommand(param =>
{
//Command Body ...
});
return _openLinkCommand;
}
}
を?予期せず、ICommand
が呼び出されることはありません。
他の種類のイベント(MouseEnter
など)も使用しようとしましたが、何も変更されていません。あなたの貢献のために事前に
おかげで、
デビ
はのDataRowで表現されているオブジェクトに位置OpenLinkCommandです、またはコマンドでありますあなたのViewModelで? –
実際には私のViewModelにあります... – Deby