У меня есть TextBox
с текстом, привязанным к счету ObervableCollection
который показывает пользователям, сколько строк отображается в пользовательском интерфейсе DataGrid
который связан с одной и той же коллекцией.
Text="{Binding ModelviewArticleObservableList.Count, Mode=OneWay}" />
Это отлично работает. Тем не менее, у меня есть ClearButton
который связан с Command
метод команды очищает ObservableCollection
и читает новые значения. Граф в моем TextBox
вызывает большие проблемы с памятью, по-видимому, потому, что он пытается перебирать коллекцию по мере чтения значений.
Это не проблема загрузки приложения, поскольку viewModel
в constructor
до InitializeComponent()
когда счетчик имеет место в представлении (сначала ViewModel). Проблема с памятью - это когда ClearButton
команда ClearButton
.
Есть ли способ скрыть привязку или что-то подобное, поэтому метод Count
вызывается после компиляции ObservableCollection
?
Вот мой объект 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, свяжите это свойство
Text="{Binding ArticleCount, Mode=OneWay}" />
И не забудьте сообщить, когда есть модификация в ModelviewArticleObservableList
RaisePropertyChange<Int32>(() => this.ArticleCount));