0

私はまだMVVMについて頭を悩ませようとしているので、この質問が基本的なものであれば申し訳ありません。

私のプログラムは画面にテキストを表示しますが、別のプロパティのステータスに応じて、テキストの色が異なります。

私の考えでは、これを2つの方法で行うことができました。

  1. Status プロパティが変更されると、セッター内から色が変更されます。EG(疑似コード)

    private LogDetails.LogStatus? logStatus;
    public LogDetails.LogStatus? LogStatus {
        get { return logStatus; }
        set { 
               Color color = //logic to work out the color
               Color = color; 
            }
    }         
    
  2. これは、OnPropertyChanged (自分で調査できます) を介して実行できると思います。

私の質問は、単純なタスクを完了するために2つのオプションが与えられているため、特定の状況では一方が他方よりも優れているか、もう1つが減価償却されているか古いか、またはMVVMパターンを緩和するためだけにオプション2を使用することを余儀なくされているか?

最終的に双方向バインディングが必要な場合 (たとえば、GUI からステータスを更新できるようにするため)、MVVM の方が優れていると思いますが、今日の現状では、何か考えはありますか?

4

1 に答える 1

3

IValueConverterを取り、LogStatusそれを色に変換するカスタムを書くだけです。Textに直接バインドし、コンバーターを使用してコントロールの を にLogStatusバインドします。ColorLogStatus

コードは非常に単純です (1 つのメソッドを実装し、コンバーターを XAML リソースとして追加し、バインディングで参照するだけです) が、同様の例をここで見ることができます。

于 2013-01-22T14:56:39.100 に答える