【发布时间】:2020-12-18 04:08:31
【问题描述】:
我正在尝试自定义DataGrid。我有个问题。我已经研究过,但我找不到任何关于它的信息。
我为单元格创建了一个Style。在这种风格中,有一个MultiTrigger,如下面的代码所示。
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsKeyboardFocusWithin}" Value="True"/>
<Condition Binding="{Binding DataContext.Tek_Satiri_Guncelleme_Modu, RelativeSource={RelativeSource AncestorType={x:Type local:DataGrid_Ozellestirilebilir}}}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="BorderBrush" Value="Blue"/>
</MultiDataTrigger>
这个Multitrigger像这样完美地工作;
然后在 C# 中,我像这样更改单元格的颜色。
//Get row
DataGridRow dataGridRow = (DataGridRow)DataGrid_1.ItemContainerGenerator.ContainerFromIndex(5);
//Get cell
DataGridCell cell = (DataGridCell)DataGrid_1.Columns[5].GetCellContent(dataGridRow).Parent;
cell.BorderBrush = Brushes.White; //This color i see when cell is in focus.
当我运行应用程序时,此代码会覆盖(我猜)我的自定义 Style,当单元格处于焦点时我看不到蓝色。我看到白了。
这是当单元格处于焦点时我应该看到的。但我看到的是白色。-->
谁能帮我解决这种情况?
编辑:
thatguy 对这种情况做了很好的解释,并给出了两个解决方案。但有一个问题。该解决方案仅适用于一种颜色。所以如果我想改变多个单元格的颜色,它们必须都是相同的颜色。我需要以不同的方式调整不同单元格的颜色。这种情况也有解决办法吗?
【问题讨论】: