我正在尝试将多选列表框绑定到我拥有的list<int>
(IdProv)。我所做的是将SelectedValue绑定到一个属性,该属性将该值添加或移除到list<int>
。 1}}和listbox.SelectedItems都应该同步。
列表框的xaml代码如下所示:
list<int>
ItemsSource在代码隐藏中设置。它是具有Id和Name属性的产品列表
问题在于未正确更新的SelectedValue属性(均不是SelectedItem)。它们仅在选择第一个项目时设置,但随后会更新。
当选择在列表上单击的项目时,当我单击首次添加的项目时,SelectedValue只会更新。
知道发生了什么事吗?我确定我在绑定中犯了一个愚蠢的错误,但这花了我几个小时,我无法理解它!
谢谢,马丁
答案 0 :(得分:0)
我做了一个简单的黑客,我不满意,但解决了问题。我编写了这个SelectionChanged处理程序,负责设置SelectedValue未更新的属性:
private void idProveedorListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBox list = (ListBox)sender;
if (list.SelectedItems.Count == 0)
{
ProdList.Last().IdProv.Clear();
return;
}
else
{
Models.Proveedor lastSelected = list.SelectedItems[list.SelectedItems.Count - 1] as Models.Proveedor;
if (lastSelected != list.SelectedItem)
PProdList.Last().IdProveedorInt = lastSelected.Id;
}
}