我有一个带有切换按钮的控制模板。此ToggleButton具有单向绑定到依赖属性的IsChecked属性。如果我显式地设置了“依赖”属性,则绑定工作。
问题是,在之后与UI中的切换按钮交互,如果我显式设置依赖项属性,绑定不会更新IsChecked属性。
我确实有一个使用TwoWay绑定的工作,它可以很好地工作。我的问题是,它为什么会这样?我是不是遗漏了什么?Silverlight的绑定机制有缺陷吗?
编辑以包含代码片段:
ControlTemplate中的绑定看起来类似于(可以用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;发布于 2009-09-14 23:32:36
WPF在修改目标属性(本例中为IsChecked)时删除单向绑定。当IsChecked被修改时,Silverlight用来保持绑定。如果稍后设置暂停,则此值也将覆盖IsChecked。
根据你的说法,银光似乎恢复了WPF的行为。哦,好吧。就我个人而言,我认为修改绑定属性是一个bug。如果属性不打算同步,命令可能是更好的解决方案。
发布于 2009-09-13 19:40:25
您应该使用INotifyPropertyChanged.
https://stackoverflow.com/questions/1411265
复制相似问题