如何在选中时将TextBlock绑定到RadioButton

时间:2017-03-13 10:57:13

标签: c# wpf xaml binding

我有三个RadioButton,如图所示。

<RadioButton x:Name="Rbtn_Dashboard" IsChecked="True" Height="40" Style="{StaticResource DashboardRBtnStyle}" Content="DASHBOARD" FontFamily="Segoe UI Semibold"  FontSize="13"  GroupName="nav"   />
<RadioButton x:Name="Rbtn_AdminSettings"  Height="40" Visibility="{Binding AppSettings, Converter={StaticResource ConvertToVisible}}"  Style="{StaticResource DashboardRBtnStyle}" Content="ADMIN SETTINGS" FontFamily="Segoe UI Semibold"  FontSize="13"   GroupName="nav"   />
<RadioButton x:Name="Rbtn_ManageUsers"  Height="40"  Visibility="{Binding ManageUsers, Converter={StaticResource ConvertToVisible}}" Style="{StaticResource DashboardRBtnStyle}" Content="MANAGE USERS" FontFamily="Segoe UI Semibold"  FontSize="13"   GroupName="nav"   />

我还有一个TextBlock

<TextBlock x:Name="txtDescName" Text="(display previewed discriptions.)"  TextTrimming="CharacterEllipsis" FontSize="14" Foreground="#FF555555" Margin="5,0,5,0" VerticalAlignment="Center"  />

我现在的挑战是:
选中x:Name="Rbtn_AdminSettings"后,我希望x:Name="txtDescName"中的文字从DASHBOARD更改为APPSETTINGS。感谢。

2 个答案:

答案 0 :(得分:2)

Trigger或在您的情况下,三个Trigger可以胜任。

<TextBlock>
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName= Rbtn_Dashboard, Path=IsChecked}" Value="True">
                    <Setter Property="Text"
                            Value="DASHBOARD" />
                </DataTrigger>
                <DataTrigger Binding="{Binding ElementName= Rbtn_AdminSettings, Path=IsChecked}"
                             Value="True">
                    <Setter Property="Text"
                            Value="APPSETTINGS" />
                </DataTrigger>
                <DataTrigger Binding="{Binding ElementName= Rbtn_ManageUsers, Path=IsChecked}"
                             Value="True">
                    <Setter Property="Text"
                            Value="MANAGE" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

答案 1 :(得分:0)

嗯,你可以这样做:

<TextBlock x:Name="txtDescName" Text="{Binding ElementName=Rbtn_AdminSettings, Path=Content}"  TextTrimming="CharacterEllipsis" FontSize="14" Foreground="#FF555555" Margin="5,0,5,0" VerticalAlignment="Center"  />

同样对于其他2个单选按钮也是如此。 虽然,理想情况下,您的单选按钮会绑定到视图模型中的属性,然后可以根据选择的单选按钮从VM设置文本块