最近做一silverlight项目,需要在双击datagrid单元格的时候更具单元格内容弹出新窗口。
查了不少资料发现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; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。