-1

ここには、コンボボックスから選択されたメッセージを表示するプロパティがあります。私の InitializeMessageFields メソッドでは、選択したアイテムに基づいてデータグリッドをロードします。コンボボックスに異なるアイテムがあるとしましょう。私がやりたかったのは、グリッドをロードする前に、選択した項目を (いくつかのダイアログ ボックスで) 表示して、どのグリッド データがどの項目に属しているかをユーザーに通知することです。プライベート文字列 _selectedMessageType;

    public string SelectedMessageType
    {
        set
        {
            if (_selectedMessageType == value) return;
            this._selectedMessageType = value;
            InitializeMessageFields();
            this.NotifyPropertyChanged("IsMessageTypeSelected");
        }
        get
        {
            MessageBox.Show("Loading ",_selectedMessageType );
            return this._selectedMessageType;
        }

    }

どうやってやるの?

4

2 に答える 2

0

ダイアログ ボックスを VM に直接表示すると、テストが難しくなります。代わりに、メッセージの表示を担当するコンストラクターを介してサービスを Dependency として渡します。テスト用にモックできるように、インターフェイスを介して実装します。

または、プリズムのイベントアグリゲーターのようなものを使用します。これは私の好ましいアプローチです。

怠惰のために vm で直接表示したい場合は、少なくともブール値のプロパティを追加して、テストのために抑制します。

于 2013-06-21T22:20:51.767 に答える