gpt4 book ai didi

silverlight - 为什么我得到不一致的绑定(bind)结果

转载 作者:行者123 更新时间:2023-12-04 07:03:50 24 4
gpt4 key购买 nike

我有一个带有切换按钮的控制模板。此 ToggleButton 的 IsChecked 属性以一种方式绑定(bind)到依赖属性。如果我明确设置依赖属性,则绑定(bind)有效。

问题是 之后 我与 UI 中的切换按钮交互,如果我明确设置依赖属性,绑定(bind)不会更新 IsChecked 属性。

我确实有一个使用 TwoWay 绑定(bind)的工作区,效果很好。我的问题是,为什么它会这样?我错过了什么吗? Silverlight的绑定(bind)机制有bug吗?

编辑包括片段:

ControlTemplate 中的绑定(bind)看起来像(可以用 TemplateBinding 替换)

<ToggleButton x:Name="PlayPause" Grid.Column="0" 
IsChecked="{Binding Paused, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="Center"
Width="50" Height="50"/>

依赖属性的显式设置是相当困惑的标准:
myComponent.Paused = true;

最佳答案

当目标属性(在本例中为 IsChecked)被修改时,WPF 会删除一种方式绑定(bind)。 Silverlight 用于在 IsChecked 被修改时保留绑定(bind)。如果稍后设置了 Paused,则该值也将覆盖 IsChecked。

根据您的说法,Silverlight 似乎恢复为 WPF 行为。那好吧。就个人而言,我认为修改绑定(bind)属性是一个错误。如果属性不打算同步,则命令可能是更好的解决方案。

关于silverlight - 为什么我得到不一致的绑定(bind)结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1411265/

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