質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

XAML Datagridのデータによって背景色をかえたい ただしRow単位ではなくそこの値の場所だけ

hamaa
hamaa

総合スコア45

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

2回答

0グッド

2クリップ

22513閲覧

投稿2018/03/26 06:15

よろしくお願いします。
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(行)単位で赤くなりますが…
その値の列(セルの位置)のみ赤くしたいです。  よろしくねお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答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
Zuishin

総合スコア27984

hihijiji👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

<DataGridTextColumn.CellStyle>ですね。
素人な私。。はずかしい

投稿2018/03/26 07:44

hamaa

総合スコア45

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです