В приведенном ниже коде , когда пользователь выбирает Заказчика в поле со списком, в текстовом поле отображается имя клиента. Я заполняю поле Combox свойством ObservableCollection на моем ViewModel, но как мне обрабатывать событие SelectedItem в моей ViewModel?
Легко реализовать это с помощью кода-кода, как показано ниже, но как это сделать с шаблоном MVVM?
У меня в настоящее время DelegateCommand и AttachedBehaviors в моем базовом шаблоне MVVM, который я могу использовать, но я не могу понять, как заставить их запускать, когда "combobox selects новый элемент".
Вид:
<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>
Код за:
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);
}