【问题标题】:How to display from one model but save to another如何从一个模型显示但保存到另一个模型
【发布时间】:2013-10-13 11:48:47
【问题描述】:

我有一个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"/>

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

【问题讨论】:

    标签: xaml mvvm windows-8 windows-runtime


    【解决方案1】:

    如果您在 ListView 上实现 SelectionChanged 事件,您只需将 personSingle.assignedChores 设置为您的 choreList ListView 中的所有选定项目。这也使您能够更准确地了解如何添加它们。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 今晚我会试试的。
      • 我找到了一种方法。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2020-05-18
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多