これは少し奇妙な問題です。(.NET 3.5sp1)
3つのToggleButtonを含むUserControlがあり、それぞれにIsCheckedがUserControl自体の異なる依存関係プロパティにバインドされています。これらのうち2つはデフォルトでtrueになり、1つはデフォルトでfalseになります。
アプリケーションの起動時に、UserControl自体(したがってそのコンテンツ)は無効になります。後で有効にすると、3つのボタンすべてが押されていないように見えます。ただし、コードプロパティはまだ正しい状態です。
ボタンがクリックされると、プロパティが適切に切り替わり、UI(そのボタンのみ)が更新されて正しい状態が反映されます(つまり、押されていないように見えるが、実際のバインド値を持つボタンをクリックしても、目に見える変化は表示されません初めてですが、バインドされた値をfalseに更新します)。「グリッチ」ボタンを2回押すと、正常に動作します(スイッチがオンになると、ボタンは期待どおりに押し込まれます)。
起動時にUserControlが無効になっていない場合、ボタンは正しく表示されます(プロパティの状態に応じて)。
残念ながら、UserControlは起動時に無効になっているはずなので、有効にして起動することはできません。私は別の解決策を望んでいます。何か案は?
(プロパティをデフォルトでfalseに設定してから、ユーザーコントロールのLoadイベントでtrueに設定しようとしました。違いはありません。)