问题描述
我想在wpf中的datagrid中右键单击选中行,并让被选中的行变色,获取该选中的行!在网上查到了很多都是从loadingrow事件中实现的!
解决方案
解决方案二:
voiddgList_PreviewMouseRightButtonDown(objectsender,MouseButtonEventArgse){Pointp=e.GetPosition(dgList);HitTestResulthtr=VisualTreeHelper.HitTest(dgList,p);TextBlocko=htr.VisualHitasTextBlock;if(o!=null){DataGridRowdgr=CommonHelper.GetParentObject<DataGridRow>(o)asDataGridRow;dgr.Focus();dgr.IsSelected=true;}}
解决方案三:
引用1楼duanzi_peng的回复:
voiddgList_PreviewMouseRightButtonDown(objectsender,MouseButtonEventArgse){Pointp=e.GetPosition(dgList);HitTestResulthtr=VisualTreeHelper.HitTest(dgList,p);TextBlocko=htr.VisualHitasTextBlock;if(o!=null){DataGridRowdgr=CommonHelper.GetParentObject<DataGridRow>(o)asDataGridRow;dgr.Focus();dgr.IsSelected=true;}}
你好,你的这个CommonHelper是什么?
解决方案四:
publicTGetParentObject<T>(DependencyObjectobj)whereT:FrameworkElement{DependencyObjectparent=VisualTreeHelper.GetParent(obj);while(parent!=null){if(parentisT){return(T)parent;}parent=VisualTreeHelper.GetParent(parent);}returnnull;}我知道了,多谢@duanzi_peng版主
时间: 2024-11-29 23:28:40