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
)도 사용하려고했지만 아무 것도 변경되지 않았습니다. 여러분의 공헌에 미리
감사합니다,
데비 하이퍼 링크의 DataContext를이 DataGridRow 아니라 당신의 ViewModel으로 표시 객체의 즉
가 된 DataRow에 의해 표현되는 객체에있는 OpenLinkCommand, 또는 명령입니다 귀하의 ViewModel에? –
실제로 내 ViewModel에 있어요 ... – Deby