关于 SO 上有很多关于 WPF 数据网格的问题,但我仍然要问我的问题,因为我无法从这些问题中得到我想要的东西......所以不要生我的气,试着通过回答漂亮来帮助我请 :]。
提示:主要问题是:为什么我的触发器不起作用?:|
是否有一个 datagrid 属性禁用选择没有值的单元格?我想我知道有类似的东西,但我现在找不到。如果没有这样的事情,你将如何解决这个事情?我正在考虑 selectedCellsChanged 上的事件或类似的事件。但我不确定如何解决。
如何根据里面的值设置单元格的背景属性?正在寻找 DatagridCell 的一些文本/内容/值属性(http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridcell.aspx)但对我没有任何作用......我知道那里是一些价值转换器,但我正在考虑使用触发器解决这个问题。
一些信息:我已经设置SelectionMode="Extended"
+ SelectionUnit="Cell"
。
我曾尝试使用触发器设置背景,但它没有工作:
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="HasContent" Value="False">
<Setter Property="Background" Value="DarkGray"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
该属性IsSelected
工作正常,但没有内容的东西没有。只是我在想(错误的)“”还是null
没有内容?也试过<Trigger Property="Content" Value="">
and <Trigger Property="Content" Value="null">
,但这些东西就是不想为我工作。我怎么了???
编辑:我找到了这个 Q/A - How do I change the background color of a cell using WPF Toolkit Datagrid所以我想我会用它来处理第二个 Q,但我仍然看不出我的触发器有什么问题......此外,如果我的触发器工作,我可以以某种方式将单元格设置HasContent="False"
为不可选择,如果有类似的东西。但我只需要让我的触发器工作:D
Edit2:当我设置它时,<Trigger Property="HasContent" Value="True">
它适用于我的所有单元格。所以我猜它需要 null/"" 作为一个值。这让我有疑问:
如果我想要空值的特殊背景并禁用它们的选择,我应该如何解决这个问题?
Edit3:禁用选择应该像这样工作:<Setter Property="Focusable" Value="false"/>
感谢WPF ListView 关闭选择..这不起作用 :D :'(
现在我只需要找出关于null
单元格内容的触发器......有什么提示吗?