我有一个 TextBox
,文本绑定(bind)到 ObervableCollection
的计数,它向用户显示在 UI DataGrid
中显示了多少行> 绑定(bind)到同一个集合。
Text="{Binding ModelviewArticleObservableList.Count, Mode=OneWay}" />
这很好用。但是,我有一个绑定(bind)到 Command
的 ClearButton
命令方法清除 ObservableCollection
并读取新值。我的 TextBox
上的 Count 导致了很大的内存问题,大概是因为它在读入值时试图遍历集合。
这不是应用程序加载的问题,因为 viewModel
在 InitializeComponent()
之前在 constructor
中实例化,当计数发生时在 View 中(首先是 ViewModel)。内存问题仅在调用 ClearButton
命令时出现。
是否有任何方法可以让绑定(bind)或其他东西休眠,以便在编译 ObservableCollection
之后调用 Count
方法?
这是我的 View 模型中的 ObservableCollection
属性:
private ObservableCollection<viewArticle> _ModelviewArticleObservableList = new ObservableCollection<viewArticle>();
public ObservableCollection<viewArticle> ModelviewArticleObservableList
{
get { return _ModelviewArticleObservableList; }
set
{
_ModelviewArticleObservableList = value;
OnPropertyChanged("ModelviewArticleObservableList");
}
}
最佳答案
使用属性
public Int32 ArticleCount
{
get
{
if (this.ModelviewArticleObservableList == null)
{
return 0;
}
else
{
return this.ModelviewArticleObservableList.Count;
}
}
}
然后,在 XAML 中,绑定(bind)到该属性
Text="{Binding ArticleCount, Mode=OneWay}" />
并且当 ModelviewArticleObservableList
发生修改时不要忘记通知
RaisePropertyChange<Int32>(() => this.ArticleCount));
关于c# - 将 TextBox 绑定(bind)到 ObservableCollection.Count WPF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24166240/