当绑定到组合框的列表中的项被删除时,WPF组合框选择将消失

本文关键字:组合 WPF 选择 删除 消失 绑定 列表 | 更新日期: 2023-09-27 17:49:31

我有一个组合框设置为

<ComboBox x:Name="HeadComboBox" ItemsSource="{Binding DataContext.HeadList, RelativeSource={RelativeSource FindAncestor,AncestorType= {x:Type views:FixedAssetBaseWholeUC}}}" Margin="195,78,86,0" VerticalAlignment="Top" SelectedItem="{Binding HeadItem}" DisplayMemberPath="Name" />

datacontext。HeadList将指向:

public List<FixedAssetHeadItem> HeadList
    {
        get
        {
            return _headList;
        }
        set
        {
            if (_headList != value)
            {
                _headList = value;
                RaisePropertyChanged("HeadList");
            }
        }
    }

禁用组合框所在的UserControl,并通过

加载另一个控件来编辑标题列表中的项
            DeleteFromHeadList(1);
            FixedAssetBaseWholeViewModel fbwvm = (FixedAssetBaseWholeViewModel)Fabwuc.DataContext;
            fbwvm.HeadList = HeadList;

当编辑完成后,重新启用用户控件,只查找选择消失器。

调试显示http://postimg.org/image/hdz4h4px3/

我该如何处理这个问题?

当绑定到组合框的列表中的项被删除时,WPF组合框选择将消失

您不应该绑定到List(可能导致内存泄漏),而应该绑定到ObservableCollection<>。这样,您的ComboBox应该适当地更新。此外,您的HeadItem应该是INPC属性设置器(私有或公共,取决于您的代码)应该引发属性更改。