У меня есть xceed WPF Datagrid, который я хочу раскрасить определенную ячейку в каждой строке определенным образом.
Сетка привязана к объектам Collection of 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.
В основном то, что я пытаюсь сделать, должно начинаться примерно так:
<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