我有一个继承自 WPF DataGrid 控件的用户控件,并向其传递不同的对象列表,因此,网格的列取决于(即自动生成)我发送的对象的类。
<userc:cfDataGrid x:Name="grdResults"
FontStyle="Normal"
FontFamily="Microsoft Sans Serif"
FontSize="14"
RowHeight="30"
AutoGenerateColumns="True"
Margin="12"
AlternatingRowBackground="Gainsboro"
AlternationCount="2"
ItemsSource="{Binding Results}"
IsReadOnly="True"
HeaderNames="{Binding Headers}" >
</userc:cfDataGrid>
现在,我还想传递具有 SolidColorBrush 数据类型属性的对象列表,并能够使用该值设置单元格的背景颜色而不是显示实际值。
我没有在样式等方面做太多工作,所以我想问是否有人可以给我一些关于如何使用 SolidColorBrush 数据类型捕获列的指示 - 并执行上述操作 - 而不依赖于列的名称?
任何指示将不胜感激!
CC
我会用一个DataTrigger
那个使用了转换器 http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx检查该对象是否是SolidColorBrush
,如果是这样设置背景颜色
像这样的事情:
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<!-- DataContext will be object for entire data row -->
<DataTrigger Binding="{Binding MyBrushColorProperty, Converter={StaticResource IsSolidBrushColor}}" Value="True">
<Setter Property="Background" Value="{Binding MyBrushColorProperty}" />
<Setter Property="Content" Value="" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)