【问题标题】:Wpf auto selection radio button and comboxWpf 自动选择单选按钮和组合框
【发布时间】:2018-06-18 16:32:58
【问题描述】:

我有 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.按下按钮。2。启用单选按钮。 3. 其中一个单选按钮已被选中,复选框最后一行被选中。
  • 这个问题似乎缺少minimal reproducible example 并且已被放弃,因此应该暂时搁置。

标签: c# wpf


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-10
    • 2011-11-03
    • 2011-09-16
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2012-12-14
    相关资源
    最近更新 更多