模拟事例:
双击列表中的行弹出该行的详细信息
解决方案:
- 为每一行添加一个双击事件
- 为列表所在的区域添加双击事件
- 为列表所在的区域添加MouseLeftButtonUp事件,模拟双击
- 为列表所在的区域添加RowActivated事件
1,为每一行添加双击事件(也许可行,但太过于麻烦)
首先解析完从后台获取的信息后,应该使用对象集合的形式赋值给GridView。
这样也就不能创建GridViewRow对象包含每一个对象
也许可以使用IEnumerable<AlarmRuleBean> alms = from c in xe.Elements("AlarmRule")
select new AlarmRuleBean
{
}
这种形式获取数据,然后通过foreach遍历集合,合成GridViewRow,但是GridViewRow中又包含了GridViewColumn对象,
GridViewColumn好像又有个GridViewCell还是GridViewColumnCell对象
这个方案没试过,感觉麻烦,所以它是考虑方案的最后一种
2,为列表所在区域添加双击事件
想法是好的,理论上也应该包含这个事件,但事实上GridView没有doubleClick之类的事件
3,为列表所在的区域添加MouseLeftButtonUp事件,模拟双击
模拟双击事件,简单点说就是通过判断鼠标两次单击之间的事件间隔时间是否符合双击时间范围
int prevTime = 0; private void gridView_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (prevTime == 0) { prevTime = DateTime.Now.Ticks; return; } // 双击判断 if (DateTime.Now.Ticks - prevTime > 3000000L) { prevTime = DateTime.Now.Ticks; return; } //处理双击事件 …… }
4,为列表所在的区域添加RowActivated事件
字面上翻译:行触发。
单击不是触发吗?但是它就是双击事件,记住、使用就行了