【问题标题】:C# MVVM - how doI prevent duplicated content in a multiple combobox selection?C# MVVM - 如何防止多个组合框选择中的重复内容?
【发布时间】:2018-09-27 15:36:52
【问题描述】:

我有五个ComboBoxs 使用相同的枚举内容。 每个 ComboBox 不应具有相同的值。

如果框一选择了内容“牛肉”,框二选择了内容“啤酒”。

现在我在第一个框中选择“啤酒”,两个内容都应该切换。我实际上正在使用一种同时检查 if 和 else 的方法(有效,但真的很无聊)。

有更智能的解决方案吗?

对于每个盒子,我都有一个此触发器和Model.BoxOneValueModel.BoxTwoValue...

private void OnBoxOneChange(PropertyChangedEventArgs e)
{

}

【问题讨论】:

  • 使用CommandParameter 可能有一个解决方案,您也可以发布您的xaml 吗?

标签: c# mvvm combobox


【解决方案1】:

如果没有xaml,则无法发布完整的答案,但如果您可以通过CommandParameter 传递ComboBox

public RelayCommand<object> BoxChangeCommand { get { return new RelayCommand<object>(OnBoxChange); } }
private void OnBoxChange(Object comboBox)
{
    ComboBox list = comboBox as ComboBox;
    if (list != null) {
        //do stuff
        var items = list.Items;
        var selectedItem = list.SelectedItem;
    }
}

ComboBox 需要 using System.Windows.Controls

还有另一种方法,通过将xaml 中的SelectedItem 绑定到您的虚拟机,您可以按下前端和虚拟机上的一个按钮来解决所有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2021-09-17
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多