DataGridの特定のセルを見つけるには、HEREのコードを使用します。しかし、このコードは私の問題の半分しか解決しません。DataGridから特定のセルのフォアグラウンドを変更するにはどうすればいいですか?C#wpf
まず、特定の細胞を見つけて、フォアグラウンドを特定の色に変更する必要があります。
これを行う方法は次のとおりです。しかし、前景は変更されません。
for (int i = 0; i < dataGrd.Items.Count; i++)
{
for (int j = 0; j < dataGrd.Columns.Count; j++)
{
DataGridCell cell = GetCell(i, j);
TextBlock tb = cell.Content as TextBlock;
if (j == 1)
{
double measure = double.Parse(tb.Text);
if (measure > 22.5)
{
cell.Foreground = Brushes.Red;
}
}
}
}
私はラインcell.Foreground = Brushes.Red;
が実行されているデバッガで始まるが、私は結果を見たときにセルが赤の前景を持っていません。
XAML:
<DataGrid BorderThickness="0" Background="Transparent" Name="grdFilter" Width="900" MinHeight="430" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" ColumnWidth="*" ItemsSource="{Binding Datas}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="True" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=Date}" Header="{catel:LanguageBinding ResourceName=DateTimesSplashScreen}" />
<DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=AirTemperatureValue}" Header="{catel:LanguageBinding ResourceName=SensorOneColorSettings}" />
<DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=HumidityValue}" Header="{catel:LanguageBinding ResourceName=SensorTwoColorSettings}" />
<DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=FluidTemperatureValue}" Header="{catel:LanguageBinding ResourceName=SensorThreeColorSettings}">
</DataGridTextColumn>
<DataGridTextColumn FontSize="13" FontStyle="Italic" Binding="{Binding Path=LightValue}" Header="{catel:LanguageBinding ResourceName=SensorFourColorSettings}" />
</DataGrid.Columns>
</DataGrid>
EDIT:は今、私は固定しようとすると、私は見つけるフォアグラウンドに変更されたが、方法が終了した後、保存されていません。 フォアグラウンドの変更を保存するにはどうすればいいですか?
ノウハウウルXAMLコードで
を交換し
TextBlock
フォアグラウンドカラーではなくCell
フォアグラウンドの色を変更しています。 Foregroundとtb.Foreground = Brushes.Redは正しくバインドされていればそのトリックを行うべきです。 – MKMohantyそれ以外の 'for(int j = 0; j
ASh