FROM ME TO YOU

oh my bizarre life !!

ViewModelLocatorを使う

PrismEdu/02.ViewModelLocator at master · runceel/PrismEdu · GitHub

今日も引き続きPrismの勉強。MVVMなにそれ?なので、ソースの意味はなんとなくわかるものの、具体的にどんな実装に活かせばいいのかがピンときていない気がする。

Bindingがよくわかってないんだよなぁ

View側の仕事

ViewのWindowsXMLに下記を記述(View名が「Shell」)

        xmlns:prism="http://prismlibrary.com/"
        prism:ViewModelLocator.AutoWireViewModel="True"

コントロールに以下を設定

<Grid>
    <TextBlock Text="{Binding TextBlock1}" VerticalAlignment="Top"/>
    <TextBlock Text="{Binding TextBlock2}" VerticalAlignment="Top" Margin="0,18,0,0" />
</Grid>

ViewModel側の処理

namespace XXXXXX.ViewModels
{
    class ShellViewModel
    {
        public string TextBlock1 { get; } = "Hello World!";
        public string TextBlock2 { get; } = "HogeHoge";
    }

f:id:fmty_keita:20181127001753p:plain

View名+”ViewModel”クラスでBinding名をプロパティで記述するだけでViewとViewModelが結合できる。

  • View・・・画面
  • ViewModels・・・View毎に設定

今の疑問点

Viewにボタンを作成し、クリックイベントとかで処理を行うにはどこにどう書けばいいんだろうか。