Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf MVVM模式中使用超链接的单元格模板_Wpf_Xaml_Mvvm_Hyperlink_Icommand - Fatal编程技术网

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}"