最近做一silverlight项目,需要在双击datagrID单元格的时候更具单元格内容d出新窗口。
查了不少资料发现silverlight很难实现这个效果,于是就用了如下方法来模拟(用户体验和双击一样)。
//// 模拟双击事件 private TimeSpan timeSpan = TimeSpan.Zero; private voID dataGrID1_LoadingRow(object sender,DataGrIDRowEventArgs e) { e.Row.MouseleftbuttonUp -= new MousebuttonEventHandler(Row_MouseleftbuttonUp); e.Row.MouseleftbuttonUp += new MousebuttonEventHandler(Row_MouseleftbuttonUp); } private voID Row_MouseleftbuttonUp(object sender,MousebuttonEventArgs e) { if (DateTime.Now.TimeOfDay - timeSpan < new TimeSpan(0,600)) { timeSpan = new TimeSpan(); //deBUG int columnIndex = dataGrID1.CurrentColumn.displayIndex; int rowIndex = dataGrID1.Selectedindex; string currentValue = ((TextBlock)dataGrID1.CurrentColumn.GetCellContent(dataGrID1.SelectedItem)).Text; Message.InfoMessage(string.Format("row:{0},column:{1},value:{2}",rowIndex,columnIndex,currentValue)); } timeSpan = DateTime.Now.TimeOfDay; } private voID dataGrID1_CurrentCellChanged(object sender,EventArgs e) { if (dataGrID1.SelectedItem != null) { timeSpan = TimeSpan.Zero; //deBUG textBox1.DataContext = dataGrID1.CurrentColumn.header.ToString() + ": " + ((TextBlock)dataGrID1.CurrentColumn.GetCellContent(dataGrID1.SelectedItem)).Text; } }总结
以上是内存溢出为你收集整理的silverlight datagrid 模拟单元格双击事件全部内容,希望文章能够帮你解决silverlight datagrid 模拟单元格双击事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)