35827


DataGridの行を選択した際に、選択行の背景色を青、文字色を白にしていますが、  
セルに配置しているradiobuttonの文字色も選択時に、白色に変更したいのですが  
なかなか良い方法がみつかりません。どなたか良い方法をご存じの方がいらっしゃいましたら  
教えて頂けないでしょうか？よろしくお願い致します。


CC BY-SA 3.0
2017-06-23T00:44:05.383
35826
2017-06-23T01:15:28.623
23964
question
c# wpf
DataGrid選択時に、セルに配置したRadioButtonの文字色を変更したい


`RelativeSource`を使用して`RadioButton`の上位にある`DataGridCell`や`DataGridRow`を参照すれば実現可能です。

例えば`DataGridCell.Foreground`には既定の文字色が反映されますので、これを`RadioButton.Foreground`にバインドすることが出来ます。

[code]

    <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <RadioButton
                    Content="radio"
                    Foreground="{Binding RelativeSource={RelativeSource AncestorType=DataGridCell}, Path=Foreground}">
                </RadioButton>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    
[/code]

また`IsSelected`プロパティに`DataTrigger`を設定する方法でも実現できます。

[code]

    <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <RadioButton
                    Content="radio">
                    <RadioButton.Style>
                        <Style
                            TargetType="RadioButton">
                            <Style.Triggers>
                                <DataTrigger
                                    Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Path=IsSelected}"
                                    Value="True">
                                    <Setter
                                        Property="Foreground"
                                        Value="#fff" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </RadioButton.Style>
                </RadioButton>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    
[/code]


CC BY-SA 3.0
2017-06-23T01:15:28.623
35827
2017-06-23T01:15:28.623
5750
35826
answer