読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

UWPでUserControlからメインページの画像を非表示にしたい

という感じのフォーラムの質問があった(解決されてたけど)のでGitHubにサンプルあげてみました。 Prism使ってます。

github.com

UserControlへのViewModelの伝搬させてる所がポイントっちゃぁポイントかも。 こんな感じでプロパティをUserControlに用意しておいて

public MainPageViewModel ViewModel
{
    get { return (MainPageViewModel)GetValue(ViewModelProperty); }
    set { SetValue(ViewModelProperty, value); }
}

// Using a DependencyProperty as the backing store for ViewModel.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty ViewModelProperty =
    DependencyProperty.Register("ViewModel", typeof(MainPageViewModel), typeof(SampleUserControl), new PropertyMetadata(null));

MainPageで自分のViewModelを渡す。

<local:SampleUserControl ViewModel="{x:Bind ViewModel, Mode=OneWay}" />