4

Converter特定のタイプのすべてのバインディングにWPF を自動的に適用する方法はありますか?

この質問を見たことがありますが、別のケース (ローカリゼーション) をカバーしているため、満足のいく答えはありません。

私の問題: CommandsWPF コマンドにバインドしたい を含むモデル クラスがあります。モデル クラスはツールキットに依存しないため、ICommandそこに WPF を実装することはできません。代わりに、s を WPF sCommandConverterにラップする があります。CommandModelICommand

<Button Command="{Binding MyCommand, Converter={StaticResource CommandConverter}}" />

これは非常にうまく機能しますが、忘れがちでありConverter=、WPF はバインディングが失敗したことを示しません。

私の質問は次のとおりです。特定のタイプのバインディングにコンバーターを常に適用するように WPF を強制する可能性はありますか? または、別の方法として、コマンド バインディングが失敗したときに適切なエラーが発生するように WPF を取得するにはどうすればよいですか?

4

3 に答える 3

2

行ったことはありませんが、カスタム マークアップ拡張機能を定義することは可能でしょうか? これにより、マークアップ拡張機能を実装するクラスに値が送信され、そこからプロパティが期待するICommandを返すことができます。Command

私が言ったように、私は自分で作成したことはありませんが、Google 検索で作成方法に関する記事がいくつか出てくるようです。

于 2009-06-14T12:34:06.410 に答える
2

Button をサブクラス化する (おそらくこれはしたくないでしょう) か、独自の添付プロパティを定義して TypeConverter 属性を使用しないと、できないと思います。

新しい添付プロパティの TypeConverter 属性を介して既定のコンバーターを使用する場合は、Rob Relyea の有益な投稿(こちら) または MSDN (こちら) を参照してください。

于 2009-06-12T16:51:23.487 に答える
0

デバッグ出力ウィンドウを確認してください。通常、そこにバインディング エラーが表示されます。

于 2009-06-12T14:30:28.957 に答える