这是问题所在。我在WPF项目上使用MVVM并使用MVVM灯。我在用户控件中有一个网格,用于返回搜索结果。我希望用户能够点击网格并让行可供父视图使用(从菜单中),并让用户双击该行并在新的“窗口”中打开。我个人有这些项目正常工作,但我不能两个都工作。我试图将1个命令绑定到MouseUp,另一个命令绑定到MouseDoubleClick,但MouseDoubleClick事件永远不会被触发。如何在MVVM设置中使用mouseUp和MouseDoubleClick事件?或任何其他建议,以便能够从数据网格中选择一行可用于菜单项并能够双击。
答案 0 :(得分:1)
使用MVVMLight,eventtocommand将为您提供selectionchanged和moused双击事件。
答案 1 :(得分:0)
我认为您将不得不手动检测双击。
dblClickTimeOut = null;
row.onmouseup = function() {
if( dblClickTimeOut == null)
dblClickTimeOut = setTimeout("dblClickTimeOut = null; selectRow('"+this.id+"');",200);
else {
// double-click stuff
}
}
selectRow = function() {
// single-click stuff
}
答案 2 :(得分:0)
对于喜欢短途的人(也是mvvm友好的!), 在xaml-class中定义交互性:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
在你的网格中:
<Grid>
<Grid.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding ElementName=xyz, Path=DataContext.MouseDoubleClick}"/>
</Grid.InputBindings>
<i:EventTrigger EventName="MouseUp">
<cmd:EventToCommand Command="{Binding ElementName=xyz, Path=DataContext.MouseUpEvent}"/>
</i:EventTrigger>
</Grid>
希望有所帮助。