RadioButtonのチェックがコードからCheckできなくなるバグはWPF4でも未だ直っていないようだ。【その2】
RadioButtonのチェックがコードからCheckできなくなるバグはWPF4でも未だ直っていないようだ。
http://d.hatena.ne.jp/trapemiya/?_ts=1308293087
の続きです。この件に関して、twitterで@frozenlibさんからするどい突込みがありました。引用させていただきます。
@trapemiya ConvertBackが常にparameterを返しているのがマズいんじゃないでしょうか?valueがfalseの時はDependencyProperty.UnsetValueを返すようにすると、ちゃんと動いているように見えます。
問題のコードはこれ。
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return parameter; }
確かにfalseの時にparameterを返すのはおかしいですね。そこで、@frozenlibさんが言われる通りに修正。
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { // return parameter; if ((bool)value) return parameter; else return DependencyProperty.UnsetValue; }
すばらしい! 完璧に動いているようです。 というわけで、DependencyProperty.UnsetValueの存在すら気づいていなかった無知の私でした。
@frozenlibさん、ありがとうございました。