Wpf自动选择单选按钮和combox

时间:2018-01-09 15:33:05

标签: c# wpf

我有4个单选按钮,每个单选按钮在附加到它们的组合框中显示不同的列表。只有在按下某个按钮后,单选按钮才可用。我想要选择一个单选按钮,而不是自动选择组合列表中的最后一行。

MAINWINDOWS.XAML

<!--RadioButtons-->
<RadioButton x:Name="RadioButtonA" GroupName="Button" Content="A"  Margin="0,5,0,0" Grid.Column="0" Click="RadioButtonA_Click" />
<RadioButton x:Name="RadioButtonB" GroupName="Button" Content="B" Margin="0,20,0,0" Grid.Column="0"  Click="RadioButtonB_Click"/>
<RadioButton x:Name="RadioButtonC" GroupName="Button" Content="C" Margin="0,35,0,0" Grid.Column="0" Click="RadioButtonC_Click"/>
<RadioButton x:Name="RadioButtonD" GroupName="Button" Content="D" Margin="0,50,0,0" Grid.Column="0" Click="RadioButtonD_Click"/>

<!--ComboBox-->
<ComboBox  
    x:Name="ComboBox"  
    IsEnabled="false" 
    Grid.Column="1" 
    Width="240"  
    Height="30" 
    VerticalAlignment="Top" Margin="0,8,0,0"
    SelectionChanged="ComboBoxSelectionChanged" >
</ComboBox>

ViewModel:其中一个单选按钮的示例

private void RadioButtonA_Click(object sender, RoutedEventArgs e)
{
    IdComboBox.SelectedValue = string.Empty;
    IdComboBox.IsEnabled= true;
    IdComboBox.Items = AList;
    currentIdentifier = Identifier.A;
}

1 个答案:

答案 0 :(得分:0)

你提到了#34; ViewModel&#34;,但你实际上并没有使用MVVM。 使用事件处理程序来设置许多相关控件的状态是一种注定要失败的方式 - 因为复杂性与控件数量的平方成比例增加。您必须使用MVVM,即将控件属性投影到模型属性时的方法。然后,您可以使用触发器根据模型属性值设置控件状态。或者,如果您认为触发器过于冗长,则可以使用QuickConverter,此库有助于简化代码。 即使你不喜欢/也不能使用它们中的任何一个,请使用触发器来设置组合框的状态。