WP7 - Можно ли выбрать элемент из списка при нажатии кнопки

Я хочу выбрать элемент списка, когда я нажимаю кнопку (которая находится внутри поля списка для каждой строки).

Теперь я попробую вот так:

<listbox itemssource="{Binding StudentDetails,Mode=TwoWay}" horizontalalignment="Left" margin="2,34,0,0" name="listBox1" verticalalignment="Top" borderbrush="#00410D0D" selectedindex="{Binding MemberPrivacy,Mode=TwoWay}" selecteditem="{Binding SelectedStudent, Mode=TwoWay}"> 
 <listbox.itemtemplate>
 <datatemplate>
 <border borderbrush="Gray" padding="5" borderthickness="1">
 <stackpanel orientation="Horizontal">
 <border borderbrush="Wheat" borderthickness="1">
 
 </border>
 <textblock text="{Binding FirstName}" name="firstName" foreground="White" margin="10,10,0,0" fontweight="SemiBold" fontsize="22">
 

 <button margin="-100,0,0,0" datacontext="{Binding DataContext, ElementName=listBox1}" command="{Binding addPerson}">
 <button.background>
 <imagebrush imagesource="{Binding addImage, Converter={StaticResource pathToImageConverter}}" stretch="Fill">
 </imagebrush></button.background>
 </button>
 </textblock></stackpanel>
 </border>
 </datatemplate>
 </listbox.itemtemplate>
 </listbox>

Моя модель просмотра: -

public ListBoxEventsViewModel()
 { 
 addPerson = new ReactiveAsyncCommand();
 addPerson.Subscribe(x =>
 {
 MessageBox.Show("Test Button Selected..");
 });

 }

Здесь я могу показать окно сообщения, когда я нажимаю кнопку. Но я не могу выбрать элемент списка. Пожалуйста, дайте мне знать, чтобы решить эту проблему.

Заранее спасибо.

Просмотреть модель: - поле списка выбрано Пункт: -

public ListBoxEventsModel _SelectedStudent;
 public ListBoxEventsModel SelectedStudent
 {
 get { return _SelectedStudent; }
 set
 {
 this.RaiseAndSetIfChanged(x => x.SelectedStudent, value);
 MessageBox.Show("Selected index==>" + SelectedStudent.FirstName);
 }
 }

Здесь он показывает выбранное имя, когда я нажимаю элемент списка. Но это то же самое, что я хочу написать для кнопки (addImage)

1 ответ

Привяжите SelectedItem в ListBox к свойству SelectedItem в ViewModel.

например SelectedItem = "{Binding SelectedItem, Mode = TwoWay}"

то в модели представления просто добавьте свойство SelectedItem, тогда вы можете просто установить это из вашей подписки.

licensed under cc by-sa 3.0 with attribution.