ListBox未在SelectedItems.Add()上更新

时间:2011-03-06 23:59:45

标签: c# wpf listbox selecteditem selectedvalue

我正在尝试将多选列表框绑定到我拥有的list<int>(IdProv)。我所做的是将SelectedValue绑定到一个属性,该属性将该值添加或移除到list<int>

列表框的xaml代码如下所示:

list<int>

ItemsSource在代码隐藏中设置。它是具有Id和Name属性的产品列表

问题在于未正确更新的SelectedValue属性(均不是SelectedItem)。它们仅在选择第一个项目时设置,但随后会更新。

当选择在列表上单击的项目时,当我单击首次添加的项目时,SelectedValue只会更新。

知道发生了什么事吗?我确定我在绑定中犯了一个愚蠢的错误,但这花了我几个小时,我无法理解它!

谢谢,马丁

1 个答案:

答案 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;
        }
    }