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

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

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

GUIの一種であり、データを表の形式でみることが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVVM

MVVM(Model View ViewModel)は構築上のデザインパターンで、表現ロジック(ViewModel)によってデータ(Model)からページ(View)を分離させます。

XAML

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

WPF

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

Q&A

解決済

1回答

2986閲覧

[WPF] DataGridのセルの色(DataTable利用時)

TEC_S

総合スコア79

DataGrid

GUIの一種であり、データを表の形式でみることが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVVM

MVVM(Model View ViewModel)は構築上のデザインパターンで、表現ロジック(ViewModel)によってデータ(Model)からページ(View)を分離させます。

XAML

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

WPF

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

1グッド

0クリップ

投稿2021/12/03 06:59

編集2021/12/03 07:37

前提・実現したいこと

WPFのMVVMアーキテクチャを利用した学習をしています。
セルの値が「〇」の時に、セルの色付け(Background)をしようとしていますが、色がつかない状況です。

下記のサイトを参考に学習しています。
https://qiita.com/kuro4/items/0858e7e3ee3411be5b2a

該当のソースコード

※ViewModel/Modelは参考サイト通り

xaml

1 <DataGrid x:Name="myDataGrid" ItemsSource="{Binding _Model._DataTable}" CanUserReorderColumns="False" CanUserSortColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" AutoGeneratingColumn="myDataGrid_AutoGeneratingColumn"> 2 <DataGrid.CellStyle> 3 <Style TargetType="{x:Type DataGridCell}"> 4 <Setter Property="TextBlock.TextAlignment" Value="Center"/> 5 <!-- 色を追加したい --> 6 <Style.Triggers> 7 <Trigger Property="TextBlock.Text" Value="〇"> 8 <Setter Property="Background" Value="Yellow"/> 9 </Trigger> 10 </Style.Triggers> 11 </Style> 12 </DataGrid.CellStyle> 13 <DataGrid.ColumnHeaderStyle> 14 <Style TargetType="{x:Type DataGridColumnHeader}"> 15 <Setter Property="HorizontalContentAlignment" Value="Center"/> 16 </Style> 17 </DataGrid.ColumnHeaderStyle> 18 <DataGrid.RowHeaderStyle> 19 <Style TargetType="{x:Type DataGridRowHeader}"> 20 <Setter Property="Content" Value="{Binding [0]}"/> 21 </Style> 22 </DataGrid.RowHeaderStyle> 23 </DataGrid>

試したこと

DataGridCellのSetterにStyle.Triggersを追加。(上記コメント部)
下記サイトを参考にした
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.datagrid.cellstyle?view=windowsdesktop-6.0

補足情報(FW/ツールのバージョンなど)

開発環境:VisualStudio2019 pro
OS:Windows10

TN8001👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

こうですかね。

xml

1<DataGrid.CellStyle> 2 <Style TargetType="{x:Type DataGridCell}"> 3 <Setter Property="TextBlock.TextAlignment" Value="Center" /> 4 <Style.Triggers> 5 <DataTrigger Binding="{Binding Content.Text, RelativeSource={RelativeSource Self}}" Value=""> 6 <Setter Property="Background" Value="Yellow" /> 7 </DataTrigger> 8 </Style.Triggers> 9 </Style> 10</DataGrid.CellStyle>

c# - Setting datagrid cell background colour wpf - Stack Overflow


丸の種類が参考サイトと違うようです(↑は参考サイトに合わせました)
参考サイト:◯
提示コード:〇

投稿2021/12/03 09:24

編集2023/08/15 08:13
TN8001

総合スコア9862

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

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

TEC_S

2021/12/03 10:15

ありがとうございます。解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問