将组2中的一个单选按钮的内容与组1中的所选单选按钮绑定

时间:2014-05-08 21:46:47

标签: wpf xaml c#-4.0 data-binding

我的WPF xaml中有两组单选按钮。

<StackPanel Margin="5,-4,0,5">
 <RadioButton Content="abc" GroupName="grp1" IsChecked="true" Margin=" 8,-4,8,5"/>
 <RadioButton Content="def" GroupName="grp1" IsChecked="false" Margin=" 8,-4,8,5"/>
</StackPanel>


<StackPanel Margin="5,-4,0,5">
 <RadioButton Content="{Binding ElementName}" GroupName="grp2" IsChecked="true" Margin=" 8,-4,8,5"/>
 <RadioButton Content="xyz" GroupName="grp2" IsChecked="false" Margin=" 8,-4,8,5"/>                         
</StackPanel>

我想在grp1 radiobuttons中将grp2 radiobutton的内容与SelectedName绑定。 例如:如果在grp1中选择了abc radiobutton,则第一个radiobutton的名称应为Value_ *,其中* 为abc或def,具体取决于所选的单选按钮。

谢谢, 罗希特夏尔。

2 个答案:

答案 0 :(得分:0)

将两者绑定到ViewModel中的DependencyProperty。

答案 1 :(得分:0)

你的意思是这样吗?

<StackPanel Margin="5,-4,0,5">
        <RadioButton Content="abc" GroupName="grp1" x:Name="AbcRadioBtn" IsChecked="true" Margin=" 8,-4,8,5"/>
        <RadioButton Content="def" GroupName="grp1" x:Name="DefRadioBtn" IsChecked="false" Margin=" 8,-4,8,5"/>
</StackPanel>
<StackPanel Margin="5,-4,0,5">
        <RadioButton GroupName="grp2" IsChecked="true" Margin=" 8,-4,8,5">
            <RadioButton.Style>
                <Style TargetType="RadioButton">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=AbcRadioBtn, Path=IsChecked}" Value="True
                                     ">
                            <Setter Property="Content" Value="{Binding ElementName=AbcRadioBtn,Path=Content}"></Setter>
                        </DataTrigger>

                        <DataTrigger Binding="{Binding ElementName=DefRadioBtn, Path=IsChecked}" Value="True">
                            <Setter Property="Content" Value="{Binding ElementName=DefRadioBtn,Path=Content}"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </RadioButton.Style>
        </RadioButton>
        <RadioButton Content="xyz" GroupName="grp2" IsChecked="false" Margin=" 8,-4,8,5"/>
</StackPanel>