我有一个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事件起作用了。
答案 0 :(得分:1)
使用mutil-select ListView,不要将SelectedValue属性与数据绑定一起使用。您需要访问ListView.SelectedItems属性以获取所选项的列表。处理SelectionChanged事件以响应更改。
答案 1 :(得分:1)
如果在ListView上实现SelectionChanged事件,则可以将personSingle.assignedChores
设置为choreList ListView中的所有选定项目。这也为您提供了更多关于如何添加它们的能力。