我的項目中有一個DataGrid,其中有一些使用PropertyDataBinding的列。C#WPF Datagrid使用代碼背後的單元格着色
<DataGrid x:Name="dataOutOfDb" Grid.Row="1" MaxHeight="500" AutoGenerateColumns="False" ItemsSource="{Binding Source=ZeichnungCollection}" Margin="47,10,1299,0" SelectionChanged="dataOutOfDb_SelectionChanged" CanUserAddRows="False" Grid.ColumnSpan="2" MouseDoubleClick="dataOutOfDb_MouseDoubleClick" >
<DataGrid.Columns>
<DataGridTextColumn Header="Zeichnungsnummer" Binding="{Binding AddColumnZeichnungsnummer, UpdateSourceTrigger=LostFocus}" Width="Auto" IsReadOnly="True"/>
<DataGridTextColumn Header="Index" Binding="{Binding AddColumnIndex, UpdateSourceTrigger=LostFocus}" Width="Auto" IsReadOnly="True"/>
<DataGridTextColumn Header="V-ID" Binding="{Binding AddColumnVolanteIndex, UpdateSourceTrigger=LostFocus}" Width="Auto" IsReadOnly="True"/>
<DataGridTextColumn Header="Änderung Intern" Binding="{Binding AddColumnAenderungIntern, UpdateSourceTrigger=LostFocus}" Width="Auto" IsReadOnly="True"/>
<DataGridTextColumn Header="Änderung Extern" Binding="{Binding AddColumnAenderungExtern, UpdateSourceTrigger=LostFocus}" Width="Auto" IsReadOnly="True"/>
<DataGridTextColumn Header="Dateiendung" Binding="{Binding AddColumnExtension, UpdateSourceTrigger=LostFocus}" Width="Auto" IsReadOnly="True"/>
<DataGridTextColumn Header="Status" Binding="{Binding AddColumnStatus, UpdateSourceTrigger=LostFocus}" Width="Auto" IsReadOnly="True"/>
</DataGrid.Columns>
</DataGrid>
現在我希望最後一列「狀態」有一個顏色取決於狀態本身。像這樣,只有行中的單元格是綠色或紅色。
類屬性的是ISerializable的和屬性都充滿這樣的:
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
this.GetObjectData(info, context);
info.AddValue("AddColumnZeichnungsnummer", Zeichnungsnummer, typeof(string));
info.AddValue("AddColumnIndex", Index, typeof(string));
info.AddValue("AddColumnVolanteIndex", Volante_Index, typeof(int));
info.AddValue("AddColumnAenderungIntern", Aenderung_Int, typeof(string));
info.AddValue("AddColumnAenderungExtern", Aenderung_Ext, typeof(string));
info.AddValue("AddColumnExtension", Extension, typeof(string));
info.AddValue("AddColumnStatus", Status, typeof(string));
}
有別人的想法如何設置一個顏色狀態單元格?
謝謝你的回答,我不知道這是否是最好的方法,但它似乎是最簡單的方法。編輯狀態時,我只需要記下更正xaml代碼。 – Only3lue
使用CellStyle無疑是改變DataGrid中單元格顏色的最佳方式和推薦方法。 – mm8