トグルボタン付きのコントロールテンプレートがあります。この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;