我希望有以下行为:
当然,XAML方法更可取:)
你有什么想法吗?
答案 0 :(得分:0)
第一个是我们假设只读单元格的示例(否则与要编辑的单击存在冲突)。它还需要初步点击以选择单元格。
在XAML资源中
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridCell}">
<EventSetter Event="MouseDown" Handler="DataGridCell_MouseDown"/>
</Style>
</DataGrid.Resources>
使用处理程序后面的代码
private void DataGridCell_MouseDown(object sender, MouseButtonEventArgs e)
{
DataGridCell cell = sender as DataGridCell;
if (cell != null)
{
cell.Background = cell.Background.Equals( Brushes.Green) ? Brushes.White : Brushes.Green;
cell.Foreground = Brushes.Black;
}
}
如果你不喜欢上述限制,只需使用预览,以便在其他处理程序之前获得点击...
<EventSetter Event="PreviewMouseDown" Handler="DataGridCell_MouseDown"/>
无论如何,排序后背景颜色可能会丢失,因此您可能需要扩展此解决方案。