前提・実現したいこと
MVVMにて、DataGridの実装をしています。
1つのセルに色を付ける、、、ということを進めているのですが、色が反映されない状態で困っています。処理としては、色を変更する予定もないため、XAMLのみで実装をするように考えているのですが、色が反映されない状況です。(参考URLにはXAMLのみで対応可能と書いてあった)
調査しても手詰まりでしたので、ご教授いただければ幸いです。
よろしくお願いいたします。
発生している問題・エラーメッセージ
1セルに色がつかない。
該当のソースコード
XAML
1<Window x:Class="WpfApp4.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:WpfApp4" 7 xmlns:vm="clr-namespace:WpfApp4.VM" 8 xmlns:i="http://schemas.microsoft.com/xaml/behaviors" 9 xmlns:l="http://schemas.livet-mvvm.net/2011/wpf" 10 mc:Ignorable="d" 11 Title="MainWindow" Height="450" Width="800"> 12 <Window.DataContext> 13 <vm:MainWindowVM/> 14 </Window.DataContext> 15 <Grid> 16 <Grid.RowDefinitions> 17 <RowDefinition Height="9*"/> 18 <RowDefinition Height="1*"/> 19 </Grid.RowDefinitions> 20 <TabControl Grid.Row="0"> 21 <TabItem Header="TabA"> 22 <DataGrid x:Name="dg" ItemsSource="{Binding vmDataInfo}" IsReadOnly="True" AutoGenerateColumns = "False"> 23 <i:Interaction.Triggers> 24 <i:EventTrigger EventName="CurrentCellChanged"> 25 <l:LivetCallMethodAction MethodTarget="{Binding}" MethodName="CurrentCellChanged" MethodParameter="{Binding ElementName=dg, Path=CurrentItem}"/> 26 </i:EventTrigger> 27 </i:Interaction.Triggers> 28 <DataGrid.Columns> 29 <DataGridTextColumn Header="選択" Width="50" 30 Binding="{Binding SelectIndex}" /> 31 <DataGridTextColumn Header="項目" Width="150" 32 Binding="{Binding ParamName}" /> 33 <DataGridTextColumn Header="設定値" Width="100" 34 Binding="{Binding Param1}" /> 35 <DataGridTextColumn Header="変更値" Width="100" 36 Binding="{Binding Param2}" > 37 <DataGridTextColumn.ElementStyle> 38 <Style TargetType="{x:Type TextBlock}"> 39 <Style.Triggers> 40 <Trigger Property="Text" Value="John"> 41 <Setter Property="Background" Value="#FFE3E87B"/> 42 </Trigger> 43 </Style.Triggers> 44 </Style> 45 </DataGridTextColumn.ElementStyle> 46 </DataGridTextColumn> 47 </DataGrid.Columns> 48 </DataGrid> 49 </TabItem> 50 <TabItem Header="TabB"> 51 <DataGrid> 52 53 </DataGrid> 54 </TabItem> 55 </TabControl> 56 <Grid Grid.Column="0" Grid.Row="1"> 57 <Button HorizontalAlignment="Left" Margin="10,0,0,0" Content="データ保存" Width="80" Height="30" > 58 <i:Interaction.Triggers> 59 <i:EventTrigger EventName="Click"> 60 <l:LivetCallMethodAction MethodTarget="{Binding}" MethodName="SaveButton" /> 61 </i:EventTrigger> 62 </i:Interaction.Triggers> 63 </Button> 64 </Grid> 65 </Grid> 66 67</Window>
試したこと
下記を参考に実装
https://codehero.jp/c%23/5549617/change-datagrid-cell-colour-based-on-values
補足情報(FW/ツールのバージョンなど)
VisualStudio2019
Livet/.NET4.5.2
回答1件
あなたの回答
tips
プレビュー