WP8 LongListMultiSelector - 不绑定

时间:2014-05-17 18:22:31

标签: xaml windows-phone-8 data-binding toolkit longlistselector

我的项目中有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");
    }
}

1 个答案:

答案 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");
    }
}