Redefinir o item selecionado da caixa de combinação no conjunto usando MVVM

Eu estou usando um ComboBox no meu aplicativo WPF e seguindo MVVM. Existe uma lista de cadeias de caracteres que quero mostrar na minha caixa de combinação.

XAML:

<ComboBox ItemsSource="{Binding ItemsCollection}" SelectedItem="{Binding SelectedItem}" />

Ver modelo:

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

Agora este código está funcionando absolutamente bem. Eu sou capaz de selecionar a partir da vista e posso obter alterações no ViewModel e se eu mudar SelectedItem do meu ViewModel eu posso ver na minha opinião.

Agora aqui está o que estou tentando alcançar. Quando eu mudar o item selecionado do meu ponto de vista eu preciso colocar uma verificação de que o valor é bom / ruim (ou qualquer coisa) definir item selecionado mais não defini-lo. Então, meu modelo de visão muda assim para isso.

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.
    }
}

Agora, quando eu executo este código e SomeCondition (valor) retorna false, SelectedItem retorna o valor da string antiga, mas na minha opinião o item selecionado na ComboBox é o valor que eu selecionei. Então vamos supor que eu tenha coleção de 10 strings mostrando na minha ComboBox. Todos os valores são bons, exceto segundo e quarto elemento (SomeCondition retorna false para o segundo e quarto valor). O que eu quero que, se eu selecionar o 2º ou 4º elemento selectedItem, não mude. Mas meu código não está fazendo isso corretamente. Se eu selecionar o segundo elemento, a visualização ainda exibirá o segundo elemento como selecionado. Eu sei que há algo errado no meu código. Mas o que é isso?

questionAnswers(3)

yourAnswerToTheQuestion