Как я могу удалить элемент из приложения Windows Phone с привязкой к данным? - PullRequest
1 голос
/ 08 июня 2011

Начиная со стандартного приложения с привязкой к данным, я заменяю xaml на главной странице

<StackPanel Margin="0,0,0,17" Width="432">
<TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
       <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>

с этим:

<StackPanel Margin="0,0,0,17" Width="432">
<TextBlock Name="ItemName" Margin="10,10,0,0" Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextSubtleStyle}" Grid.Column="0" />
<Button Grid.Column="1" Click="Button_Click" BorderThickness="0" Height="40" HorizontalAlignment="Center">
</StackPanel>

В Button_Click () я хочу удалить этот элемент из элементов. Я знаю, что синтаксис будет что-то вроде App.ViewModel.Items.Remove (что-то) но я скучаю по тому, что это такое. Как я могу убедиться, что правильный элемент удален в зависимости от отображаемого значения LineOne?

Спасибо за внимание.

1 Ответ

2 голосов
/ 08 июня 2011

Есть несколько способов сделать это. Лучший способ с ICommand. Но вам также нужно добавить класс CommandButton для хранения ссылки и параметра.

Если вы хотите быстрый обходной путь, тогда объект отправителя в событии нажатия кнопки должен быть кнопкой, которую вы нажали, а его свойство DataContext должно быть элементом списка. Гадкий хак, но гораздо меньше работы, чем идти по пути ICommand, если вы просто возитесь с инструментами.

private void Button_Click(object sender, RoutedEventArgs e) {
  App.ViewModel.Items.Remove((ItemViewModel)((Button)sender).DataContext);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...