Я думал, что мой вопрос будет очень простым, но я до сих пор не нашел решения.
У меня есть LongListSelector
и ContextMenu
в каждом пункте. Когда я долгое время покажу элемент LongListSelector
, появится ContextMenu
с опцией удаления. Я хочу удалить выбранный элемент LongListSelector
. Мой код:WP8: LongListSelector с ContextMenu для удаления элемента
XAML:
<phone:PhoneApplicationPage
....
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
>
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="ContentPanel" Grid.Row="0" Margin="12,0,12,0">
<phone:LongListSelector
Name="TestList"
>
<phone:LongListSelector.ItemTemplate
>
<DataTemplate>
<TextBlock Text="{Binding}">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu Name="ContextMenu" >
<toolkit:MenuItem
Name="Delete"
Header="Delete"
Click="Delete_Click"/>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</TextBlock>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</Grid>
</Grid>
C#:
namespace TestContextMenu
{
public partial class MainPage : PhoneApplicationPage
{
public List<string> Items = new List<string>
{
"Item1",
"Item2",
"Item3",
"Item4",
"Item5",
};
public MainPage()
{
InitializeComponent();
TestList.ItemsSource = Items;
}
private void Delete_Click(object sender, RoutedEventArgs e)
{
Items.RemoveAt(0);
//var item = (sender as MenuItem).DataContext;
//TestList.ItemsSource.Remove(item);
}
}
}
Когда я нажмите кнопку Удалить, элемент в LongListSelector
не могут быть удалены визуально, хотя данные есть были удалены.
Я прочитал this, но решение не работает для моей ситуации. Кто-нибудь знает, что не так в моем кодовом PLS, дайте мне знать, спасибо!
Благодарим @ crea7or за ваш быстрый ответ. Он отлично работает! – Vigor