我的项目中有LongListMultiSelector,它与ListProductInRecipe2P绑定。当我使用LongListMultiSelector加载页面时,列表正在加载,但是当我想要删除时,项目LongListMultiSelector不会更新。
这是我的代码: XAML:
<toolkit:LongListMultiSelector x:Name="ListProductsSelectedItems" ItemsSource="{Binding ListProductInRecipe2P}">
<toolkit:LongListMultiSelector.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" Style="{StaticResource PhoneTextGroupHeaderStyle}"></TextBlock>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Size}" Style="{StaticResource PhoneTextNormalStyle}"></TextBlock>
<TextBlock Text="{Binding Type}" Style="{StaticResource PhoneTextNormalStyle}"></TextBlock>
</StackPanel>
</StackPanel>
</DataTemplate>
</toolkit:LongListMultiSelector.ItemTemplate>
</toolkit:LongListMultiSelector>
C#(代码背后):
private void DelProducts_Click(object sender, EventArgs e)
{
var list = ListProductsSelectedItems.SelectedItems;
for (int i = 0; i < list.Count; i++)
{
var temp = list[i] as Fridge;
App.ViewModel.ListProductInRecipe2P.Remove(temp);
}
}
和C#(viewModel):
private List<Fridge> ListProductInRecipe2;
public List<Fridge> ListProductInRecipe2P
{
get { return ListProductInRecipe2;}
set
{
ListProductInRecipe2 = value;
changeValue("ListProductInRecipe2P");
}
}
答案 0 :(得分:1)
尝试使用ObservableCollection。它将为您举起INotifyProperty事件。
了解详情@ MSDN ObservableCollection Class
using System.Collections.ObjectModel;
private ObservableCollection<Fridge> ListProductInRecipe2;
public ObservableCollection<Fridge> ListProductInRecipe2P
{
get { return ListProductInRecipe2;}
set
{
ListProductInRecipe2 = value;
// changeValue("ListProductInRecipe2P");
}
}