私はSilverlightを初めて使用しますが、より中級/上級のもののいくつかに耳を傾けています。
Silverlight5でMVVMを使用しています。
ビューがあります(これをComboView.xamlと呼びます)。ViewModelがあります(これをAwesomeVMと呼びます)
ビューには、次のようにページのリソースで宣言されたViewModelが含まれています。
<local:AwesomeVM x:Key="MyAwesomeVM" />
次に、次のようにDataContextで参照されます。
<sdk:Page.DataContext>
<Binding Source="{StaticResource MyAwesomeVM}"/>
</sdk:Page.DataContext>
ビューのコードビハインドには、SetupPageというメソッドがあります。SetupPageは、次のように、そのビューモデルタイプ(AwesomeVM)のインスタンスをパラメーターとして取り込みます。
Public Sub SetupPage(ByVal VM As AwesomeVM)
...
End Sub
ここで問題があります。ViewModel内からこのSetupPage()を呼び出す必要があります。ViewModelがデータを取得する前にページをロードしているようです(これは、ViewModelが非同期呼び出しであるWCF Webサービスを使用しているためだと思います)。そのため、SetupPage()のVMにはデータがありません。そして爆破します。
ViewModel内からビューのメソッドを呼び出す方法はありますか?