在datagrid中 数据以table的形式存在 其实可以将整个datagrid看作是一个对象列表 当然 在MVVM的开发模式中 这个状态显而易见 往往我们将datagrid与一个ObservableCollection绑定 但是MVVM 没有EventHandler的盖帘,只有Command的概念 双击事件属于一个事件 这个时候就需要做一个转换 在xaml 文件中 导入
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"这么一行命名空间
然后再Datagrid下面这样写 为了方便我删去了多余的部分
<DataGrid ItemsSource="{Binding DeviceInfos}" > <i:Interaction.Triggers> <i:EventTrigger EventName="MouseDoubleClick"> <i:InvokeCommandAction Command="{Binding Path=DoubleClickItem}" CommandParameter="{Binding ElementName=da1,Path=SelectedItem}"/> </i:EventTrigger> </i:Interaction.Triggers> </DataGrid>这样 双击的事件就会在绑定在DoubleClickItem这个命令上 后面则是绑定的参数,一并交给相应的ModelView层处理
学会了吗?