我在控件上附加了ObservableCollection类型的属性。如果我添加或删除集合中的项目,则ui不会更新。但是,如果我用一个新的ViewModel替换内部的集合,UI就会更新。当删除集合中的项目时,ObservableCollection依赖项属性不会更新
有人可以给我一个我需要在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));
}
}
我明白,我需要注册该集合发生了变化,但我不能确定如何依赖属性
谢谢。是否有可能在SpecialDays_CollectionChanged中获得依赖对象的引用? – GoalMaker 2010-12-06 01:20:07
哪个依赖对象?你的意思是RadCalendar?不容易...无论如何,我不确定它是否合理:如果RadCalendar的多个实例绑定到相同的集合? – 2010-12-06 01:30:57