У меня есть элемент управления диаграммой в XAML и точки данных, которые привязаны к элементу управления.Проблема в том, что когда мой ModelView изменяет коллекцию точек, элемент управления Chart не получает никаких уведомлений.Я пробовал дп, с ObservableCollection и INotifyPropertyChanged без какой-либо удачи.Я знаю, что существует разница между изменением поля / свойства и выполнением операций сбора, таких как (добавление / удаление / замена и т. Д.), Чтобы изменения распространялись на элемент управления Chart.Но я не получил его на работу.Событие изменения срабатывает только тогда, когда я создаю экземпляр / переустанавливаю коллекцию.
Есть ли у кого-нибудь ссылка на работающий MVVM, который работает с коллекциями?
Стоит также знать.
<code>
public class ObservableCollection : Collection, INotifyCollectionChanged, INotifyPropertyChanged
public static DependencyProperty WorkModelsProperty = DependencyProperty.Register("WorkModels", typeof(ObservableCollection), typeof(Chart),
new PropertyMetadata(new ObservableCollection { }, new PropertyChangedCallback(
(sender, args) =>
{
Debugger.Break(); //trigged only when collection got new instance
})));
public ObservableCollection WorkModels
{
get { return (ObservableCollection)GetValue(WorkModelsProperty); }
set { SetValue(WorkModelsProperty, value); }
}
Переплет правильный и проверен.Код в Window.Resources.
ObjectDataProvider ObjectType="{x:Type vm:ListWorkViewModel}" x:Key="ListWorkViewModel"
Привязка элемента управления.
WorkModels="{Binding Source={StaticResource ListWorkViewModel}, Path=WorkModels}"
В ViewModel я использую следующий код для повышения изменений.(При использовании INotifyPropertyChanged) </p>
<pre>
WorkModels.Add(workModel);
this.RaisePropertyChanged("WorkModels");
protected void RaisePropertyChanged(string propertyName)
{
VerifyPropertyName(propertyName);
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
Когда я использую ObservableCollection, я только добавляю новую точку данных в коллекцию.</p>
<pre>
WorkModels.Add(workModel);
Вопрос по шаблону MVVM на WPF?