DataGridCell の中の TextBlock に、 Resources で定義したの TextBlock のスタイルが適用されないのはなぜでしょうか?
DataGridTextColumn の ElementStyle プロパティに設定すれば、セルの中に適用されることは確認していますが、本件の疑問は動的にカラムを追加し、ElementStyle の指定が難しいケースの中から発生しました。
<Window.Resources> <Style BasedOn="{StaticResource {x:Type TextBlock}}" TargetType="TextBlock"> <Setter Property="Foreground" Value="Red" /> </Style> </Window.Resources> <Grid Margin="5"> <Grid.RowDefinitions> <RowDefinition Height="AUTO" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <TextBlock Text="ElementStyle のテスト" /> <DataGrid Grid.Row="1" AutoGenerateColumns="False" ItemsSource="{Binding Users}"> <DataGrid.Columns> <DataGridTextColumn Width="100" Binding="{Binding No}" Header="番号" /> <DataGridTextColumn Width="100" Binding="{Binding Name}" Header="名前" /> </DataGrid.Columns> </DataGrid> </Grid>
上記のコードを実行した場合、以下のようになり、セルの中には定義した Style が適用されません。
カラムヘッダ(「番号」や「名前」)に Style が適用されたのと同じように、セルの中に適用されることを期待したのですが、意図した結果にはなりませんでした。
この理由をご存じの方がいたら、ご教授ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/22 00:37