如何从一个模型显示但保存到另一个模型

时间:2013-10-07 01:12:22

标签: xaml mvvm windows-8 windows-runtime

我有一个ListView,用户可以从choreList中选择多个项目。但是,我希望选择的项目保存到包含Chores

列表的另一个模型

以下是我的尝试,但它不起作用。 personSingle对象包含0 assignedChores

    <ListView x:Name="choreList" BorderBrush="White" BorderThickness="1" Grid.Row="1" 
              DisplayMemberPath="Summary" ItemsSource="{Binding choreList, Mode=OneWay}"  
              SelectedValue="{Binding personSingle.assignedChores, Mode=TwoWay}"
              SelectionMode="Multiple"/>

我需要做些什么来将杂项选择添加到我的personSingle.assignedChores列表?

使用答案更新:

    private void choreList_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.RemovedItems.Count > 0) {
            foreach(win8Chores.Model.databaseTables.Chore item in e.RemovedItems)
            {
                win8Chores.Model.databaseTables.Chore myChore = new Model.databaseTables.Chore();
                myChore = item;
                VM.personSingle.assignedChores.Remove(myChore);
            }

        }

        if (e.AddedItems.Count > 0)
        {
            foreach (win8Chores.Model.databaseTables.Chore item in e.AddedItems)
            {
                win8Chores.Model.databaseTables.Chore myChore = new Model.databaseTables.Chore();
                myChore = item;
                VM.personSingle.assignedChores.Add(myChore);
            }
        }
    }

XAML:

<ListView x:Name="choreList" BorderBrush="White" BorderThickness="1" Margin="401,322,613,150" Grid.Row="1" 
          DisplayMemberPath="Summary" ItemsSource="{Binding choreList, Mode=OneWay}"  
         SelectionMode="Multiple" SelectionChanged="choreList_SelectionChanged"/>

我仍然想知道是否有办法严格使用Binding来做到这一点。但是现在SelectionChanged事件起作用了。

2 个答案:

答案 0 :(得分:1)

使用mutil-select ListView,不要将SelectedValue属性与数据绑定一起使用。您需要访问ListView.SelectedItems属性以获取所选项的列表。处理SelectionChanged事件以响应更改。

答案 1 :(得分:1)

如果在ListView上实现SelectionChanged事件,则可以将personSingle.assignedChores设置为choreList ListView中的所有选定项目。这也为您提供了更多关于如何添加它们的能力。

相关问题