我正在创建一个用户控件来显示一个三个月的日历。该控件基于WPF日历控件(WPF Toolkit 2009-06),我想将几个Calendar的属性传递给我的用户控件的相应属性。用户控件属性设置为依赖项属性,其基础类型与日历属性的类型匹配。这是我的标记:
<StackPanel>
<toolkit:Calendar Name="MasterCalendar"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
<toolkit:Calendar Name="SlaveCalendar1"
DisplayDate="{Binding DisplayDate, Converter={StaticResource IncrementalMonthConverter}, ElementName=MasterCalendar, Mode=OneWay}"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
<toolkit:Calendar Name="SlaveCalendar2"
DisplayDate="{Binding DisplayDate, Converter={StaticResource IncrementalMonthConverter}, ElementName=SlaveCalendar1, Mode=OneWay}"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
</StackPanel>
除SelectedDates
属性外,所有属性绑定都没有问题。我的绑定出现以下错误:
'SelectedDates'属性是只读的,无法通过标记设置。
我怀疑是因为SelectedDates
属性是一个集合,但我不知道如何解决这个问题。任何人都可以启发我的问题的原因,并建议修复?谢谢你的帮助。
答案 0 :(得分:2)
如果我理解你,你的代码后面的代码中有依赖属性,并且在用户控件中键入日历控件的属性。您正尝试将各种Calendar控件的SelectedDates集合分配给代码中的同名Dependency属性。
您可以通过一行代码完成此操作:
this.SelectedDates=SlaveCalendar1.SelectedDates
在添加选定日期时触发的相应EventHandler中。
即使您将绑定设置为OneWayToSource
,SelectedDates=
段代码也是一项任务。由于SelectedDates属性没有setter,因此无法编写这段代码。
Here您可以找到日历控件文档的链接