【发布时间】:2011-12-16 09:43:28
【问题描述】:
问题很简单:当ItemsSource 更新时,组合框不会“刷新”,例如新项目似乎没有添加到组合框中的项目列表中。
我已经尝试了这个问题的已接受答案的解决方案:WPF - Auto refresh combobox content,但没有运气。
这是我的代码, XAML:
<ComboBox Name="LeadTypeComboBox" ItemsSource="{Binding LeadTypeCollection}" />
视图模型:
public ObservableCollection<XmlNode> LeadTypeCollection { get; set; }
我更新这个集合的方式是在单独的方法中,它从更新的 XML 文件中加载数据:this.LeadTypeCollection = GetLeadTypesDataSource();
我也尝试使用Add 进行测试:
this.LeadTypeCollection = GetLeadTypesDataSource();
ItemToAdd = LeadTypeCollection[LeadTypeCollection.Count - 1];
this.LeadTypeCollection.Add(ItemToAdd);
代码更新集合肯定开始了,调试时我可以在这个集合中看到新项目,但我在组合框中看不到它们。
在 xaml 代码隐藏中执行此操作:LeadTypeComboBox.ItemsSource = MyViewModel.GetLeadTypesDataSource(); 但我想使用 MVVM 来实现这一点,即代码必须位于不知道 LeadTypeComboBox 控件的 ViewModel 中。
【问题讨论】:
标签: wpf xaml data-binding mvvm observablecollection