かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

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}" />