我有一个装配好的组合框
<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;
编辑完成后,重新启用usercontrol,仅查找选择消息。
调试显示 http://postimg.org/image/hdz4h4px3/
我该如何处理?
答案 0 :(得分:0)
您不应该绑定到列表(can cause memory leak),而是绑定到ObservableCollection<>
。这样,您的ComboBox应该适当更新。您的HeadItem
也应该是INPC属性 - 在setter中(私有或公共,取决于您的代码)应该提高属性更改。