Wpf MVVM模式中使用超链接的单元格模板
我试图在Wpf MVVM模式中使用超链接的单元格模板,wpf,xaml,mvvm,hyperlink,icommand,Wpf,Xaml,Mvvm,Hyperlink,Icommand,我试图在DataGrid中插入一个超链接,并找到一种方法,以便使用MVVM模式实现RequestNavigate行为 到目前为止,我已经尝试了很多解决方案,但都不管用。你能帮帮我吗 这是我的xaml代码: <dgWPFCtrl:ExtDataGridTemplateColumn Header="Link to XXX" Width="*"> <dgWPFCtrl:ExtDataGridTemplateColumn.CellTempla
DataGrid
中插入一个超链接,并找到一种方法,以便使用MVVM模式实现RequestNavigate
行为
到目前为止,我已经尝试了很多解决方案,但都不管用。你能帮帮我吗
这是我的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
从未被调用过
我也尝试过使用其他类型的事件(例如MouseEnter
),但没有任何改变
提前感谢您的贡献
Deby超链接的DataContext是DataGridRow表示的对象的DataContext,而不是ViewModel。因此,必须使用绑定方法才能访问该ViewModel(RelativeSource AncestorType或ElementName) ElementName(假设您的数据网格名为“myDataGrid”) 相对资源
Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.OpenLinkCommand}"
OpenLinkCommand是位于数据行所表示的对象中,还是在您的ViewModel中?实际上它在我的ViewModel中…伙计,我正在挖掘web为什么我的超链接不起作用。即使我使用了相同的方法,比如向下滚动,也看不到它。
Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.OpenLinkCommand}"