Подтвердить что ты не робот

MVVM: привязка к ListBox.SelectedItem?

Как связать свойство модели представления с свойством ListBox.SelectedItem?

Я создал простую демоверсию MVVM, чтобы попытаться понять это. Моя модель просмотра имеет следующие свойства:

private ObservableCollection<DisneyCharacter> p_DisneyCharacters;
public ObservableCollection<DisneyCharacter> DisneyCharacters
{
    get { return p_DisneyCharacters; }

    set
    {
        p_DisneyCharacters = value;
        base.FirePropertyChangedEvent("DisneyCharacters");
    }
}

private DisneyCharacter p_SelectedItem;
public DisneyCharacter SelectedItem
{
    get { return p_SelectedItem; }

    set
    {
        p_SelectedItem = value;
        base.FirePropertyChangedEvent("SelectedItem");
    }
}

Я хочу привязать свойство SelectedItem к элементу, выбранному в списке. Вот XAML для списка:

<ListBox ItemTemplate="{StaticResource MasterTemplate}"
         ItemsSource="{Binding Path=DisneyCharacters}" 
         SelectedItem="{Binding Path=Selectedtem, Mode=TwoWay}" 
         HorizontalAlignment="Stretch" />

Вот моя проблема: свойство SelectedItem модели представления не обновляется, когда я изменяю выделение в списке.

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

Итак, как мне установить привязку SelectedItem? Благодарим за помощь.

4b9b3361

Ответ 1

Ну, вот он, большой, как жизнь. В XAML. Я привязываюсь к свойству модели представления "Selectedtem". К сожалению, настоящее имя - "SelectedItem". Так что этот код действительно работает - я решил проблему в начале этого дня, а затем провел остаток дня и весь вечер, прочесывая паутину, прежде чем я заметил орфографическую ошибку.

Моя жена сказала мне в 3 часа ночи сегодня: "Знаешь, это окажется чем-то маленьким". И так оно и было - пропущенное письмо "Я". Ну, по крайней мере, я могу лечь спать сейчас.