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

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

Теперь я попробовал так: -

   <ListBox Height="444"
                     ItemsSource="{Binding StudentDetails,Mode=TwoWay}" 
                     HorizontalAlignment="Left" Margin="2,34,0,0"
                     Name="listBox1" VerticalAlignment="Top" 
                     Width="476" 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">
                                    <Image  Name="ListPersonImage" Source="{Binding PersonImage}" Height="100" Width="100" Stretch="Uniform" Margin="10,0,0,0"/>
                                </Border>
                                <TextBlock Text="{Binding FirstName}" Name="firstName" Width="200" Foreground="White" Margin="10,10,0,0" FontWeight="SemiBold" FontSize="22"  />
                                <Image Height="50" Source="{Binding addImage}" HorizontalAlignment="Left"  Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="50" />

                                <Button Margin="-100,0,0,0" Height="80" Width="80" DataContext="{Binding DataContext, ElementName=listBox1}" Command="{Binding addPerson}" >
                                    <Button.Background>
                                        <ImageBrush ImageSource="{Binding addImage,  Converter={StaticResource pathToImageConverter}}" Stretch="Fill" />
                                    </Button.Background>
                                </Button>
                            </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)


person Vijay    schedule 10.05.2014    source источник
comment
Следует также отметить, что в более поздних версиях ReactiveUI ReactiveAsyncCommand был обесценен и объединен с ReactiveCommand.   -  person Glenn Watson    schedule 11.05.2014


Ответы (1)


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

например, SelectedItem="{Привязка SelectedItem, Mode=TwoWay}"

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

person Glenn Watson    schedule 10.05.2014
comment
Привет @Гленн Уотсон. Я следую твоему указанию. Я могу выбрать элемент, когда щелкаю элементы списка. Но я хочу использовать только кнопку. Я хочу написать две функции для списка. Один для элементов списка. Еще один для кнопки. Обе функции разные. Пожалуйста, помогите мне решить проблему. - person Vijay; 12.05.2014
comment
Привет @Glenn .. Я добавил кодировку, следующую вашей инструкции. Пожалуйста, обратитесь к ней и дайте мне любую идею, чтобы решить мою проблему. Здесь я столкнулся с другой проблемой. Элемент списка не отвечает на второй щелчок. - person Vijay; 12.05.2014
comment
Просто сделайте привязку ссылкой на привязку SelectedItem, вам не нужно, чтобы какой-либо код делал что-либо, пока кнопка не будет нажата. - person Glenn Watson; 20.05.2014