MVVM: Enlace a ListBox.SelectedItem?


Cómo enlazo una propiedad view model al ListBox.Propiedad SelectedItem?

He creado una demostración simple de MVVM para tratar de resolver esto. Mi modelo de vista tiene estas propiedades:

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");
    }
}

Quiero vincular la propiedad SelectedItem al elemento seleccionado en el cuadro de lista. Aquí está el XAML para el list box:

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

Aquí está mi problema: La propiedad SelectedItem del modelo de vista no se actualiza cuando cambio la selección en el cuadro de lista.

Hice una prueba donde reemplazé temporalmente la propiedad SelectedItem del modelo de vista con una propiedad selectedIndex, y la vinculé al ListBox.Propiedad SelectedIndex. Esa propiedad se actualizó bien's es sólo la propiedad SelectedItem que no puedo ir a trabajar.

Entonces, ¿cómo arreglo el enlace SelectedItem? Gracias por tu ayuda.

Author: David Veeneman, 2009-09-06

1 answers

Bueno, ahí está, grande como la vida. En el XAML. Estoy enlazando a una propiedad de modelo de vista "Selectedtem". Desafortunadamente, el nombre real es "SelectedItem". Así que este código realmente funciona solved Resolví el problema temprano esta tarde y luego pasé el resto de la tarde y toda la noche recorriendo la web, antes de notar el error de ortografía.

Mi esposa me dijo a las 3:00 de esta tarde, "Sabes, va a resultar ser algo pequeño."Y así fue a una letra que faltaba "I". Bueno, en al menos puedo irme a la cama ahora.

 45
Author: David Veeneman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-06 02:44:06