よろしくお願いします。
XAML Datagridのデータによって背景色をかえたい
※ただしRow単位ではなくそこの値の場所だけ
ネット上で探すと…
<DataGrid.CellStyle> <Style TargetType="DataGridCell"> <Style.Triggers> <DataTrigger Binding="{Binding データバインド}" Value="ここの値"> <Setter Property="Foreground" Value="Red" /> </DataTrigger> </Style.Triggers> </Style> </DataGrid.CellStyle>
このような物を見つけますが、
「ここの値」と同じのRow(行)単位で赤くなりますが…
その値の列(セルの位置)のみ赤くしたいです。 よろしくねお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答2件
1
ベストアンサー
ViewModel の実装を簡略化するために C# で INotifyPropertyChanged を無駄に難しく実装してみた を使っています。
適宜読み替えてください。
ViewModel
C#
1using System.Collections.ObjectModel; 2using Zuishin; 3 4namespace WpfApp1 5{ 6 public class ViewModel 7 { 8 public ObservableCollection<Item> Items { get; } = new ObservableCollection<Item>(new Item[] 9 { 10 CreateItem("Alice", 10), 11 CreateItem("Bob", 20), 12 CreateItem("Charley", 30), 13 }); 14 15 private static Item CreateItem(string name, int age) 16 { 17 return PropertyNotifier.Create<Item>(name, age); 18 } 19 } 20 21 public class Item 22 { 23 public Item(string name, int age) 24 { 25 Name = name; 26 Age = age; 27 } 28 public virtual string Name { get; set; } 29 public virtual int Age { get; set; } 30 } 31}
MainWindow.xaml.cs
C#
1using System.Windows; 2 3namespace WpfApp1 4{ 5 public partial class MainWindow : Window 6 { 7 public MainWindow() 8 { 9 InitializeComponent(); 10 DataContext = Zuishin.PropertyNotifier.Create<ViewModel>(); 11 } 12 } 13}
MainWindow.xaml
XML
1<Window x:Class="WpfApp1.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:WpfApp1" 7 mc:Ignorable="d" 8 Title="MainWindow" Height="450" Width="800"> 9 <Grid> 10 <DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False"> 11 <DataGrid.Columns> 12 <DataGridTextColumn Header="名前" Width="150" Binding="{Binding Name}"/> 13 <DataGridTextColumn Header="年齢" Width="100" Binding="{Binding Age}"> 14 <DataGridTextColumn.CellStyle> 15 <Style TargetType="{x:Type DataGridCell}"> 16 <Style.Triggers> 17 <DataTrigger Binding="{Binding Age}" Value="20"> 18 <Setter Property="Background" Value="Red"/> 19 </DataTrigger> 20 </Style.Triggers> 21 </Style> 22 </DataGridTextColumn.CellStyle> 23 </DataGridTextColumn> 24 </DataGrid.Columns> 25 </DataGrid> 26 </Grid> 27</Window>
投稿2018/03/26 07:08
編集2018/03/26 07:10総合スコア28650
0
<DataGridTextColumn.CellStyle>ですね。
素人な私。。はずかしい
投稿2018/03/26 07:44
総合スコア45
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。