私のWPFアプリケーションでは、ViewModelのMainWindowで何かを送信する必要があります。何私は今MainWindowインスタンスをViewModelに渡す
public ViewModel(Window Wndw){/../}
:だから私の考えでは、コードビハインドでthis.DataContext = new ViewModel (this)
を設定し、その後、ビューモデルのコンストラクタで、私はちょうど私がWindowインスタンスとして送信されていた「この」パラメータを使用することができました、
Grid MGrid = Wndw.FindName("MainGrid") as Grid
私はすべてのエラーを得ることはありませんが、それは常にnullである:私の窓の内側にある「MainGrid」要素にアクセスで実行する必要があります。
<Window bunch
of
stuff>
<Grid x:Name="MainGrid">
</Grid>
</Window>
しかし、私はのような何かをしようとすると、私はそうです私がMGridで何かしようとすると、EpはNull参照例外を取得します。
一方、Wndwはnullではありません、私はそれをテストしました。また、ウィンドウ全体の代わりにMainGridを渡すことはオプションではありません。
アイデア?
それをしないでくださいあなたはこれを行うことができます。モデルを表示するためにそのウィンドウを決して通過しないでください。 MVVMパターンに従うことはありません。 – ViVi
私はMVVMパターン –
に厳密に従っていません。次に、viewmodelに渡すよりも単純にWindow.xaml.csにコードを書いてください。これは役に立たないようです。 MVVMを使用すると、ビューモデルでウィンドウにアクセスできます。このようにモデルのコンストラクタを表示するためにそれを挿入しないでください。 – ViVi