The Daily WTF 日本語
フォロー
CodeSOD:元に戻す、ずっと昔に戻す
Windows Presentation Foundationは、コントロールをデータバインド可能にするWindows用のUIフレームワークです。これは、テキストボックスをモデルクラスの数値フィールドにリンクできることを意味します。このフレームワークでは、カスタム型の変換方法に関する指示が必要であり、そこでIValueConverterインターフェイスが登場します。このインターフェイスには、ConvertとConvertBackの2つのメソッドがあり、これらを使用して型間でデータを変換できます。このインターフェイスを実装するクラスは、たとえば色をブラシに変換するために使用できます。しかし、このインターフェイスのAPIはあまり好まれておらず、命名規則が混乱を招く可能性があります。Fredrikaによる提出は、テキストボックスをdoubleフィールドにバインドする際に、空の文字列をnullに変換しない組み込みコンバーターの問題を強調しています。この問題に対処するためにカスタムコンバーターが作成されましたが、その実装は、命名規則が不適切な変数や不明瞭なロジックにより理想的ではありません。コンバーターは、変換時には値をdoubleとしてキャストし、逆変換時には文字列としてキャストするため、混乱を招く可能性があります。WPFでコンバーターを使用する全体的なアプローチはあまり好まれておらず、この実装は問題を明確にするのに役立ちません。空のテキストボックスをnull値として扱うためにコンバーターを使用することも、将来的に問題を引き起こす可能性があります。全体として、コンバーターAPIとそのこのケースでの実装は、うまく設計されておらず、混乱や潜在的な問題を引き起こす可能性があります。