我有一个 xceed WPF Datagrid,我想以特定方式为每一行中的特定单元格着色。
网格绑定到 Bid 对象的集合。我要应用于颜色的列是 BidValue。
<xcdg:DataGridCollectionViewSource x:Key="BidViewSource" Source="{Binding Bids}"
d:DesignSource="{d:DesignInstance {x:Type models:Bid}, CreateList=True}">...
<xcdg:DataGridControl Name="BidGrid" DockPanel.Dock="Bottom" VerticalAlignment="Top" AutoCreateColumns="False"
ReadOnly="True" ItemsSource="{Binding Source={StaticResource BidViewSource}}"...
为了简化该过程,Bid.BackgroundColor 和 Bid.ForegroundColor 的存在是为了提供确定 BidValue 应该显示的正确颜色的 getter。
基本上我想要做的应该是这样开始的:
<xcdg:Column FieldName="BidValue" Title="Bid" CellHorizontalContentAlignment="Center" MaxWidth="75" AllowSort="False">
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<DataTemplate.Triggers>
将它连接到我的 Bid 对象中的颜色字段的其余部分被证明是困难的。我试图在 XAML(更常见)中实现着色逻辑,如下所示:
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=BidValue}" Value="X" >
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
但是当我这样做时,我得到以下信息:
错误 MC4109:在类型“System.Windows.Controls.ContentPresenter”上找不到模板属性“背景”