【发布时间】:2014-06-12 22:13:49
【问题描述】:
我有一个文本框,它绑定到我的视图模型中的 Int 属性,该属性的计数为 ObservableCollection。这是我的 Xaml 绑定:
Text="{Binding ArticleCount, Mode=OneWay}"
还有我的 int 属性:
private Int32 _ArticleCount;
public int ArticleCount
{
get
{
if (this.ModelviewArticleObservableList == null)
{
return 0;
}
else
{
return this.ModelviewArticleObservableList.Count;
}
}
}
这在应用程序初始化时效果很好,我在我的 UI TextBox 中获得了 ObservableCollection 计数。但是,有一些方法可以更改ObservableCollection,因此计数会更改。我需要一个 Property Changed 事件来通知计数何时更改,但我不确定如何执行此操作?这是我的ObservableCollection 属性:
private ObservableCollection<viewArticle> _ModelviewArticleObservableList = new ObservableCollection<viewArticle>();
public ObservableCollection<viewArticle> ModelviewArticleObservableList
{
get { return _ModelviewArticleObservableList; }
set
{
_ModelviewArticleObservableList = value;
OnPropertyChanged("ModelviewArticleObservableList");
}
}
我目前有一个正常的INPC实现:
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
【问题讨论】:
-
您可以订阅
ObservableCollection<T>的CollectionChanged事件并从那里调用OnPropertyChanged("ArticleCount")。
标签: c# wpf mvvm inotifypropertychanged