1

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

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

    <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"/>

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

4

2 回答 2

1

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

于 2013-10-07T04:47:41.910 回答
1

如果您在 ListView 上实现 SelectionChanged 事件,您只需将您设置personSingle.assignedChores为您的 choreList ListView 中的所有选定项目。这也使您对如何添加它们有更多的权力。

于 2013-10-09T03:10:12.450 回答