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

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

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

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

WPF

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

Q&A

解決済

2回答

26368閲覧

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

hamaa

総合スコア45

XAML

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

WPF

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

0グッド

2クリップ

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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

総合スコア28662

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

投稿2018/03/26 07:44

hamaa

総合スコア45

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問