Я создаю приложение, в котором список объектов должен быть перехвачен и переведен перед отображением в группе элементов управления.Для этого я создал объект DependencyProperty типа ObservableCollection (BackupEntry - это пользовательский класс, определяющий информацию о базе данных).Я хочу, чтобы этот элемент управления был связан с ObservableCollection в MVVM.Эта коллекция может быть использована для первоначальной загрузки элемента управления.Затем, когда запись добавляется через интерфейс управления, она должна быть добавлена во внутреннюю коллекцию ObservableCollection, которая определена как DependencyProperty и отображается в коллекции в MVVM, поскольку они связаны.Вот код, который я использую:
protected ObservableCollection<BackupEntry> _BackupItems = new ObservableCollection<BackupEntry>();
public static readonly DependencyProperty BackupItemsProperty = DependencyProperty.Register("BackupItems", typeof(ObservableCollection<BackupEntry>), typeof(ExplorerWindow));
public ObservableCollection<BackupEntry> BackupItems
{
get { return (ObservableCollection<BackupEntry>)GetValue(BackupItemsProperty); }
set { SetValue(BackupItemsProperty, value); }
}
public ExplorerWindow()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ExplorerWindow), new FrameworkPropertyMetadata(typeof(ExplorerWindow)));
SetValue(BackupItemsProperty, _BackupItems);
_BackupItems.CollectionChanged += new NotifyCollectionChangedEventHandler(BackupItems_CollectionChanged);
}
void BackupItems_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
throw new NotImplementedException();
}
И в тестовом приложении:
<my:ExplorerWindow Name="ew" HorizontalAlignment="Left" VerticalAlignment="Top" Width="503" Height="223" BackupItems="{Binding BackupListItems}" />
Я создал кнопку на экране в своем тестовом приложении.При щелчке по нему элемент добавляется в BackupListItems.BackupItems_CollectionChanged никогда не вызывается, и новый элемент не отображается в моей коллекции в моем элементе управления.Я совершенно не в курсе?Что мне нужно сделать, чтобы это работало?