Сбросить выбранный элемент списка в наборе с помощью MVVM

Я использую ComboBox в своем приложении WPF и следую MVVM. Есть список строк, которые я хочу показать в моем ComboBox.

XAML:


Посмотреть модель:

public Collection ItemsCollection; // Suppose this has 10 values.
private string _selectedItem;
public string SelectedItem
{
    get { return _selectedItem; }
    set
    {
        _selectedItem = value;
        Trigger Notify of property changed.
    }
}

Теперь этот код работает абсолютно нормально. Я могу выбрать из представления, и я могу получить изменения в ViewModel, и если я изменю SelectedItem из моей ViewModel, я могу видеть это в моем представлении.

Теперь вот что я пытаюсь достичь. Когда я изменяю выбранный элемент с моей точки зрения, мне нужно поставить галочку, что значение хорошее / плохое (или что-то еще) установить выбранный элемент, иначе не устанавливать его. Так что моя модель зрения меняется следующим образом.

public string SelectedItem
{
    get { return _selectedItem; }
    set
    {
        if (SomeCondition(value))
            _selectedItem = value;           // Update selected item.
        else
            _selectedItem = _selectedItem;   // Do not update selected item.
        Trigger Notify of property changed.
    }
}

Теперь, когда я выполняю этот код и SomeCondition (значение) возвращает false, SelectedItem возвращает старое строковое значение, но на мой взгляд выбранный элемент в ComboBox - это значение, которое я выбрал. Итак, давайте предположим, что у меня есть коллекция из 10 строк, отображаемых в моем ComboBox. Все значения хороши, кроме второго и четвертого элемента (SomeCondition возвращает false для 2-го и 4-го значения). То, что я хочу, чтобы, если я выбрал 2-й или 4-й элемент selectedItem, не изменилось. Но мой код не делает это правильно. Если я выберу 2-й элемент, то при просмотре все еще будет отображаться 2-й элемент как выбранный Я знаю, что в моем коде что-то не так. Но что это?

Ответы на вопрос(3)

Ваш ответ на вопрос