У меня есть прикрепленное свойство типа ObservableCollection для элемента управления.Если я добавляю или удаляю элементы из коллекции, пользовательский интерфейс не обновляется.Однако, если я заменю коллекцию внутри новой ViewModel, пользовательский интерфейс обновит.
Может ли кто-нибудь дать мне пример того, что мне нужно делать в объекте Dependency, чтобы он мог обрабатывать изменения в коллекции?
Часть объекта зависимости указана ниже:
public class RadCalendarBehavior : DependencyObject
{
private static void OnSpecialDaysChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var calendar = d as RadCalendar;
if (e.NewValue != null)
{
calendar.DayTemplateSelector = new SpecialDaySelector((ObservableCollection<DateTime>)e.NewValue, GetSpecialDayTemplate(d));
}
}
public static ObservableCollection<DateTime> GetSpecialDays(DependencyObject obj)
{
return (ObservableCollection<DateTime>)obj.GetValue(SpecialDaysProperty);
}
public static void SetSpecialDays(DependencyObject obj, ObservableCollection<DateTime> value)
{
obj.SetValue(SpecialDaysProperty, value);
}
public static readonly DependencyProperty SpecialDaysProperty =
DependencyProperty.RegisterAttached("SpecialDays", typeof(ObservableCollection<DateTime>), typeof(RadCalendarBehavior), new UIPropertyMetadata(null, OnSpecialDaysChanged));
}
}
Я понимаю, что мне нужно зарегистрировать, что коллекция изменилась, но я не уверен, как это сделать в свойстве зависимости