MVVM Silverlight 5 Datagrid MVVM 鼠标双击事件
2012-11-30 13:21
411 查看
近日在Silverlight 5中用到了要在Datagrid鼠标双击事件 ,本来很多学习资料 但是由于用的是MVVM模式。所以一开始一头雾水,后来用了比较简便的方式予以实现,仅供参考,也请各位大侠指点。
具体代码见下:
1、页面XAML代码
<sdk:DataGridTextColumn Binding="{Binding UpdateDate }" Header="更新时间" />
</sdk:DataGrid.Columns>
//触发器
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp" >
<cmd:EventToCommand Command="{Binding OpenEditWindowCommand}"
CommandParameter="{Binding SelectedItem,ElementName=dgMembers}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</sdk:DataGrid>
当然要添加引用:
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.SL5"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
2、ViewModel代码
private DateTime _clickTs;
#region Command定义
public ICommand OpenEditWindowCommand { get; private set; }
#endregion
public TestViewModel()
{
_clickTs = DateTime.Now;
OpenEditWindowCommand = new RelayCommand<object>(OpenEditWindow);
}
private void OpenEditWindow(object obj)
{
DateTime now = DateTime.Now;
if (now.Subtract(_clickTs).TotalMilliseconds <= 200)//此处的时间都是毫秒哦
{
//此处添加您要实现的功能.
}
else
{
_clickTs = now;
}
}
具体代码见下:
1、页面XAML代码
<sdk:DataGridTextColumn Binding="{Binding UpdateDate }" Header="更新时间" />
</sdk:DataGrid.Columns>
//触发器
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp" >
<cmd:EventToCommand Command="{Binding OpenEditWindowCommand}"
CommandParameter="{Binding SelectedItem,ElementName=dgMembers}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</sdk:DataGrid>
当然要添加引用:
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.SL5"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
2、ViewModel代码
private DateTime _clickTs;
#region Command定义
public ICommand OpenEditWindowCommand { get; private set; }
#endregion
public TestViewModel()
{
_clickTs = DateTime.Now;
OpenEditWindowCommand = new RelayCommand<object>(OpenEditWindow);
}
private void OpenEditWindow(object obj)
{
DateTime now = DateTime.Now;
if (now.Subtract(_clickTs).TotalMilliseconds <= 200)//此处的时间都是毫秒哦
{
//此处添加您要实现的功能.
}
else
{
_clickTs = now;
}
}
相关文章推荐
- Silverlight DataGrid鼠标双击事件
- 支持鼠标双击事件的DataGrid
- silverlight中DataGrid列的双击事件
- Silverlight 鼠标双击 事件
- 稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
- silverlight 自定义 鼠标 双击事件
- silverlight中DataGrid双击事件。
- 最简单的silverlight的DataGrid行双击事件添加
- Silverlight模拟鼠标双击事件
- 完成功能是DataGrid的页面选中事件、鼠标事件、双击事件改变TR的色彩
- 【原创】有关Silverlight DataGrid双击事件的分析 完整分析 代码与示例
- silverlight datagrid 模拟单元格双击事件
- 在MVVM中使用AttachedDependencyProperty,实现鼠标双击listviewitem事件
- DataGrid中实现鼠标双击事件
- Silverlight 鼠标双击事件处理
- Silverlight - 鼠标右键及左键双击事件
- Silverlight中使用MVVM(7):DataGrid中触发Button的Click事件
- silverlight中DataGrid如何处理鼠标的滚轮事件
- silverlight 自定义 鼠标 双击事件
- silverlight datagrid 行双击事件