SelectionChanged表示某项被选中时执行某个功能,当grid中包含多行时,使用SelectionChanged会出现,选中了某行,当鼠标移动到另外的行时,此时鼠标并未点击,但是该行会被自动选中,出现同时选中多行的现象,当代码只希望一次选中一行时,程序会崩溃或出现一些问题。
那怎么才能解决这个问题呢,那就需要使用mouseleftbuttondown,但是gird子项中被左击时事件不会被触发,需要在RowLoaded中为每个row加载mouseleftbuttondown事件。具体加载方式如下:
private void gridSPRW_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
{
GridViewRowItem rowItem = e.Row as GridViewRowItem;
if (rowItem != null)
{
rowItem.AddHandler(GridViewRowItem.MouseLeftButtonDownEvent, new MouseButtonEventHandler(this.rowItem_MouseLeftButtonDown), true);
}
}
void rowItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
.......
}