1

ほとんどの MVVM フレームワークは、ViewModel の Execute メソッドと CanExecute メソッドを使用する基本的な Command パターン (PRISM の DelegateCommand など) を実装しています。

ただし、コマンドにツールチップを追加する必要があることがよくあります。たとえば、コマンドの目的を説明したり、コマンドが無効になっている理由を説明したりします。

現在、私のツールチップは独立していますが、これによりスタイル定義のコードが重複します。

ツールチップを MVVM コマンド パターンと統合する方法はありますか?
独自の Command クラスを作成する必要がありますか?それとも悪い習慣と見なされますか?

4

3 に答える 3

3

あなたの質問は完全に有効だと思います。私はそのようなコマンドを認識していません。RoutedUICommand私が考えることができる最も近いものですが、明らかにルーティングされており(MVVMには適していません)、Textプロパティのみを定義しています - no ToolTip

あなたがほのめかしたように、あなたは確かにあなた自身を定義することができます. または、ある種のコマンド登録サービスを定義して、モジュールICommandがそのコマンドに関するメタデータ (ツールチップを含む) と共に実装を登録することもできます。

于 2011-09-02T08:32:53.447 に答える
2

PRISM の「デリゲート コマンド」ToolTipを拡張して、プロパティを追加してみませんか?

public class DelegateCommandEx : DelegateCommand 
{
    public string ToolTip { get; set; }
}

デフォルトでは、WPFコマンドにはそのプロパティがないと思います。これは、aToolTipがWPFの文字列である必要がないためです-オブジェクト、コントロール、コントロールのグループなどである可能性があります

于 2011-09-02T16:37:44.183 に答える
0

ICommandは、MVVM の UI によって発生するイベントにバインドする方法です。プロパティがなくToolTip、コマンドがハンドラーとして機能し、UI がないため、これがどのように役立つかわかりません。ツールチップ固有のコマンドを参照していますか?その場合、それは意味がありますか?

一般に、WPF でToolTipServiceを使用します。

于 2011-09-02T07:26:33.970 に答える