【发布时间】:2014-06-11 14:58:47
【问题描述】:
我有一个TextBox,其文本绑定到ObervableCollection 的计数,它向用户显示在绑定到同一个集合的UI DataGrid 中显示了多少行。
Text="{Binding ModelviewArticleObservableList.Count, Mode=OneWay}" />
这很好用。但是,我有一个绑定到Command 的ClearButton,命令方法清除ObservableCollection 并读入新值。我的TextBox 上的计数导致了大内存问题,大概是因为它试图在读取值时迭代集合。
这不是应用程序加载的问题,因为当计数发生在视图中时(首先是 ViewModel),constructor 在 InitializeComponent() 之前实例化了 viewModel。内存问题只是在调用ClearButton 命令时出现。
有什么方法可以让绑定休眠或者在ObservableCollection被编译之后调用Count方法?
这是我的视图模型中的 ObservableCollection 属性:
private ObservableCollection<viewArticle> _ModelviewArticleObservableList = new ObservableCollection<viewArticle>();
public ObservableCollection<viewArticle> ModelviewArticleObservableList
{
get { return _ModelviewArticleObservableList; }
set
{
_ModelviewArticleObservableList = value;
OnPropertyChanged("ModelviewArticleObservableList");
}
}
【问题讨论】:
-
也许只是新建一个新的 observable 集合并替换现有的