【发布时间】:2011-05-20 17:20:26
【问题描述】:
我在控件上有一个 ObservableCollection 类型的附加属性。如果我从集合中添加或删除项目,则 UI 不会更新。但是,如果我将其中的集合替换为新的集合,则 UI 会更新 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));
}
}
我知道我需要注册集合已更改,但我不确定如何在依赖属性中执行此操作
【问题讨论】:
标签: wpf dependency-properties observablecollection