すべて、私はWPFに比較的慣れていません。私はこれに対する答えを探し回っていましたが、私が見つけたのは、列ではなく実行時に行を色付けする方法だけです。たとえば、次の質問:
etal。
私はMSDNDataGridページCellStyle
でプロパティを見ましたが、これについても検索したにもかかわらず、その使用法は私にはまったくわかりません。
実行時に列全体の背景色を変更するにはどうすればよいですか?
御時間ありがとうございます。
すべて、私はWPFに比較的慣れていません。私はこれに対する答えを探し回っていましたが、私が見つけたのは、列ではなく実行時に行を色付けする方法だけです。たとえば、次の質問:
etal。
私はMSDNDataGridページCellStyle
でプロパティを見ましたが、これについても検索したにもかかわらず、その使用法は私にはまったくわかりません。
実行時に列全体の背景色を変更するにはどうすればよいですか?
御時間ありがとうございます。
私がそれを機能させる唯一の方法は、(自動生成を使用せずに)自分で列を設定することです。したがって、最初に行うことは、列を定義することです。
<DataGrid x:Name="Frid" ItemsSource="{Binding Path=.}">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name"
Binding="{Binding Path=FirstName}">
</DataGridTextColumn>
<DataGridTextColumn Header="Last Name"
Binding="{Binding Path=LastName}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
次に、各列のCellStyleを設定し、Window.Resourcesで宣言できる静的リソースにBackgroundをバインドする必要があります。
<Window x:Class="WpfApplication1.MainWindow" ...>
<Window.Resources>
<SolidColorBrush x:Key="clBr" Color="White" />
</Window.Resources>
...
列:
<DataGridTextColumn Header="First Name"
Binding="{Binding Path=FirstName}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background"
Value="{StaticResource clBr}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
次に、コードまたはxaml操作のいずれかによって静的リソースを操作できます。
それが役に立てば幸い。
少し古いですが、これをプログラムで実行する方法は次のとおりです(AutoGen列の場合)。
private void dgvMailingList_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
e.Column.CellStyle = new Style(typeof(DataGridCell));
e.Column.CellStyle.Setters.Add(new Setter(DataGridCell.BackgroundProperty, new SolidColorBrush(Colors.LightBlue)));
}
同じアプローチは、AutoGen以外の列にも適用できます。