그룹 상자에 라디오 버튼이 있습니다. 무작위로 버튼을 선택하면 시각적 인 관점에서 모두 완벽하게 작동하며 새 버튼을 선택할 때마다 이벤트 핸들러가 호출됩니다.UI에서 WPF RadioButton이 선택되었지만 코드에서 IsChecked == false로 표시됨
값이 변경되면 콜백에 대한 종속성 속성이 생깁니다. 이 콜백 프로 시저에서 어떤 버튼의 IsChecked 값을 읽을 때 버튼이 시각적으로 선택되었지만 (동시에 모두 이상한 경우에도) 값이 False입니다. 디버거는 또한 모든 버튼을 선택하지 않은 상태로 표시합니다.
후 후, 나는 ... 기본적인 검증 한 후, 그 이유에 대해 아이디어를 결여하고있어
<GroupBox>
<StackPanel>
<RadioButton x:Name="btNone"
Content="Disconnected"
IsChecked="True"
Checked="OnSelChecked"/>
<RadioButton x:Name="btManual"
Content="Manual"
Checked="OnSelChecked"/>
</StackPanel>
</GroupBox>
이벤트 핸들러 :
private void OnSelChecked(object sender, RoutedEventArgs e) {
if (btManual.IsChecked == true) {
// is called
}
}
종속성 속성 :
public static readonly DependencyProperty ManualProperty =
DependencyProperty.Register("Manual",
typeof(Position), typeof(SwitchBox),
new FrameworkPropertyMetadata(null,
FrameworkPropertyMetadataOptions.AffectsRender,
new PropertyChangedCallback(OnManualChanged)));
종속성 속성 콜백 :
private static void OnManualChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) {
SwitchBox box = sender as SwitchBox;
if (box.btManual.IsChecked == true) {
// never true, why??
}
}
향후 참조 용으로 GroupNames의 문제에 대한 자세한 설명은 여기 (http://stackoverflow.com/a/17287651/968003)입니다. –
나는이 문제를 추적하려고 애 쓰고 있습니다. 여기에 있습니다. , 내가 알지 못했던 알려진 버그. 감사! – Randolpho