简体   繁体   English

选择特定项目时移除组合框项目

[英]Combo box items removal upon selection of a particular item

I have a combo box with 4 items.我有一个包含 4 个项目的组合框。 One of the items is "okay" which is a string.其中一项是“okay”,它是一个字符串。 If this item is selected then I need to remove all other items in the combo box.如果此项目被选中,那么我需要删除组合框中的所有其他项目。 How can I do this in XAML?如何在 XAML 中执行此操作? Can I use control triggers?我可以使用控制触发器吗?

You can do something like below.您可以执行以下操作。

In View:在视图中:

<ComboBox ItemsSource="{Binding FilteredLenses}" SelectedItem="{Binding SelectedValue, Mode=TwoWay}" VerticalAlignment="Center" Width="230">
            </ComboBox>

In your ViewModel:在您的视图模型中:

private ObservableCollection<string> filteredLenses;
public ObservableCollection<string> FilteredLenses
{
    get
    {
        if (filteredLenses == null)
            filteredLenses = new ObservableCollection<string>();

        return filteredLenses;
    }
    set
    {
        filteredLenses = value;
        OnPropertyChanged("FilteredLenses");
    }
}

public string selectedValue;
public string SelectedValue
{
    get
    {
        return selectedValue;
    }
    set
    {
        if (value == "Okay")
        {
            // This logic can be done in many ways
            FilteredLenses.Clear();
            FilteredLenses.Add("Okay");

            OnPropertyChanged("FilteredLenses");
        }

        selectedValue = value;
        OnPropertyChanged("SelectedValue");
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM