1

私はカリバーンの新参者です。

MVVMとCaliburnについていくつか質問があります。

  1. ビューはどのようにしてViewModelで明示的にメソッドを呼び出すことができますか?Caliburnは、最初にViewModelコンストラクターを呼び出します。もしそうなら、インスタンスはどこに含まれるのでしょうか?ビュー内のコードは、現時点で新しいインスタンスを作成します(ViewModelのメソッドを明示的に呼び出す必要があります)。しかし、ViewModelはすでにインスタンス化されているはずですが、これはばかげています。

  2. UIスレッドでバインディングの更新を強制するにはどうすればよいですか?

4

1 に答える 1

4

Caliburn.Microには、ビューからビューモデルの動詞を呼び出すアクションの概念があります。これには主に規則を使用できます。たとえば、Buttonビューにが含まれている場合、がx:Name="Save"クリックSaveされるとビューモデルのメソッドが呼び出されButtonます。

明示的なバインディングをいつでも使用して、規則をオーバーライドしたり、独自の規則を提供したりできます。また、Caliburn.Microには、ビューモデルメソッドをビュー内のイベントに関連付けるための添付プロパティも用意されています。

UIの更新を強制するという点では、ビューモデルはを実装しますINotifyPropertyChanged。Caliburn.Microは、、、PropertyChangedBaseおよびScreen(ライフサイクルを追加する)を含む、これの基本的な実装を提供します。

次に、Caliburn.Microが提供するヘルパーメソッドを使用してPropertyChangedイベントを呼び出すことができます。これはと呼ばれNotifyOfPropertyChange、マジックストリングを使用するのではなく、式lambdaを使用して通知するプロパティを指定できます。

于 2012-11-22T16:55:28.077 に答える