Quel est le moyen le plus facile pour gérer SelectedItem événement avec MVVM?

Dans le code ci-dessous, lorsque l'utilisateur sélectionne Client dans la zone de liste déroulante, le nom du client est affiché dans une zone de texte. Je remplis le Combox boîte avec une ObservableCollection bien sur mon ViewModel, mais comment dois-je traiter la SelectedItem événement dans mon ViewModel?

Il est facile à mettre en œuvre des ce avec le code-behind, comme indiqué ci-dessous, mais comment puis-je faire cela avec le modèle MVVM?

J'ai actuellement DelegateCommand et AttachedBehaviors dans ma base de MVVM modèle que je peux utiliser, mais je ne peux pas comprendre comment les obtenir à feu lors de la "zone de liste déroulante sélectionne un nouvel élément".

Vue:

<Window.Resources>
    <DataTemplate x:Key="CustomerTemplate">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding LastName}"/>
        </StackPanel>
    </DataTemplate>
</Window.Resources>

<DockPanel LastChildFill="False" Margin="10">
    <ComboBox 
        x:Name="CustomerList"
        ItemTemplate="{StaticResource CustomerTemplate}"
        HorizontalAlignment="Left"
        DockPanel.Dock="Top" 
        Width="200"
        SelectionChanged="CustomerSelected"
        ItemsSource="{Binding Customers}"/>

    <TextBlock x:Name="CurrentlySelectedCustomer"/>
</DockPanel>

Code Derrière:

private void CustomerSelected(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
    Customer customer = (Customer)CustomerList.SelectedItem;
    CurrentlySelectedCustomer.Text = String.Format("{0} {1}", customer.FirstName, customer.LastName);
}

OriginalL'auteur Edward Tanguay | 2009-06-18