Игнорировать пустые ComboBoxItems - PullRequest
1 голос
/ 29 мая 2019

У меня есть ComboBox, в котором есть ограниченные элементы, например

<ComboBox ItemsSource="{Binding Path=list}"
          DisplayMemberPath="name"
          SelectedValuePath="id"
          SelectedValue="{Binding Path=id, Mode=TwoWay}"/>

Проблема в том, что в list есть минимум 10 элементов, которые могут быть пустыми.

Есть ли способ игнорировать пустые значения как элементы?


Я пытался удалить пустые значения различными методами, например

[System.Xml.Serialization.XmlIgnore]
public ObservableCollection<myclass> list
{
    get
    {
        ObservableCollection<myclass> list = new ObservableCollection<myclass>();

        foreach (var item in org_list.Where(x => !string.IsNullOrWhiteSpace(x.name)).ToList())
        {
            list.Add(item);
        }

        return list;
    }
}

, но это не такбольше не обновлять ComboBox, если я добавляю какие-либо элементы в org_list.

1 Ответ

1 голос
/ 29 мая 2019

Создайте список зеркал, который предоставляет список без тары. Для изменений подпишитесь на наблюдаемые события коллекций, которые имеют отношение, такие как добавление / удаление, и держите зеркало непротиворечивым. Затем привяжите этот отфильтрованный список.

...