2014-01-06 3 views
0

Внутри MainWindow есть список, заполненный некоторыми данными. Эти данные загружаются из viewmodel, поэтому я не имею никакого кода.WPF ListBox отправить SelectedItem значение в viewmodel

MainWindow.xaml

<ListBox Name="listBoxData" 
     DataContext="{Binding Source={StaticResource MainWindowViewModelDataSource}}" 
     ItemTemplate="{DynamicResource BookTemplate}"        
     ItemsSource="{Binding Books}" /> 

Как я могу знать, какая книга выбрана в ListBox (с использованием ICommand) и отправить его свойство (int Id например) viewmodel для дальнейшей обработки?

+2

Bind 'SelectedItem' для некоторого свойства в ViewModel. –

ответ

2

Просто связать SelectedItem к некоторому свойству (скажем SelectedBook) в вашем ViewModel, нет необходимости иметь ICommand для этого.

<ListBox Name="listBoxData" 
     ItemTemplate="{DynamicResource BookTemplate}" 
     ItemsSource="{Binding Books}" 
     SelectedItem="{Binding SelectedBook}" /> 

Вы можете получить идентификатор книги просто доступа к ViewModel собственности:

int selectedBookId = SelectedBook.Id; 
0

Рохит прав

связать выбранный элемент из выпадающего списка на имущество, которое находится в ViewModel:

как это: (используя свойство SelectedBook)

<ListBox Name="listBoxData" 
    DataContext="{Binding Source={StaticResource MainWindowViewModelDataSource}}" 
    SelectedItem="{Binding Path=SelectedBook, Mode=TwoWay}" 
    ItemTemplate="{DynamicResource BookTemplate}"        
    ItemsSource="{Binding Books}" /> 
1

Добавить SelectedBook собственности вашего ViewModel класса, желательно вашего Book типа.

Затем в XAML, добавить правильное Binding:

<ListBox SelectedItem="{Binding SelectedBook}"/> 

Если он действует, вы можете заставить его быть TwoWay связывания, например, так:

<ListBox SelectedItem="{Binding SelectedBook, Mode=TwoWay}"/> 

Крайне важно, чтобы ваше свойство SelectedBook также вызывает соответствующее уведомление PropertyChanged, поэтому привязка сохраняет UI и ViewModel в синхронизации.

+1

'SelectedItem' связывает два пути по умолчанию. –

Смежные вопросы