Я создаю UserControl в WPF, который я называю YesNoButton.
Он имеет один DependencyProperty, IsChecked и содержит две кнопки ToggleButton с метками «Да» и «Нет».Я связал свойство IsChecked объекта Да ToggleButton с этим свойством IsChecked родительского объекта YesNoButton.Я связал свойство IsChecked Нет ToggleButton со свойством IsChecked Да ToggleButton через 'обратный логический' IValueConverter.Вот моя разметка YesNoButton, за исключением некоторых элементов внешнего вида:
<UserControl ...>
<StackPanel Orientation="Horizontal">
<ToggleButton x:Name="YesButton" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type Controls:YesNoButton}}, Path=IsChecked}">Yes</ToggleButton>
<ToggleButton IsChecked="{Binding ElementName=YesButton, Path=IsChecked, Converter={StaticResource BooleanToInverseConverter}}">No</ToggleButton>
</StackPanel>
</UserControl>
В моем приложении я включаю YesNoButton следующим образом:
<local:YesNoButton IsChecked="{Binding Path=BoolPropertyOfDataContext}" />
Когда окно загружается впервые, еслиЯ переключаю BoolPropertyOfDataContext другими средствами, YesNoButton реагирует отлично.
Но как только я нажимаю ToggleButton Да или Нет, хотя визуальное состояние YesNoButton обновляется правильно, привязка к BoolPropertyOfDataContext перестает работать вообще - кажетсябыть отмененнымЯ думал, что эти «связующие цепи» должны были работать нормально, но я явно чего-то здесь упускаю!
Есть идеи?