gpt4 book ai didi

WPF:集合依赖属性 "is read-only and cannot be set from markup"

转载 作者:行者123 更新时间:2023-12-04 04:36:18 30 4
gpt4 key购买 nike

我正在创建一个用户控件来显示三个月的日历。该控件基于 WPF 日历控件 (WPF Toolkit 2009-06),我想将日历的几个属性传递给我的用户控件的相应属性。用户控件属性设置为依赖属性,其基础类型与日历属性的类型相匹配。这是我的标记:

<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>

所有属性绑定(bind)都没有问题,除了 SelectedDates属性(property)。我在绑定(bind)时收到以下错误:

“SelectedDates”属性是只读的,不能从标记中设置。

我怀疑这是因为 SelectedDates属性是一个集合,但我不知道如何解决这个问题。任何人都可以告诉我问题的原因并提出解决方案吗?谢谢你的帮助。

最佳答案

如果我理解你的话,你的代码中有 Dependency 属性,名称匹配,并在用户控件中键入日历控件的属性。您正在尝试将各种日历控件的 SelectedDates 集合分配给后面代码中同名的 Dependency 属性。

您可以通过一行代码简单地做到这一点:
this.SelectedDates=SlaveCalendar1.SelectedDates
在添加选定日期时触发的适当 EventHandler 中。

即使您将绑定(bind)设置为 OneWayToSource SelectedDates=一段代码是一个任务。由于 SelectedDates 属性没有 setter ,因此无法编写这段代码。

Here您可以找到日历控件文档的链接

关于WPF:集合依赖属性 "is read-only and cannot be set from markup",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2147715/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com