Windows Template Studio MVVMLight从“详细信息”页面访问ViewModel

时间:2019-03-14 11:28:03

标签: mvvm-light uwp-xaml windows-template-studio

我正在使用Windows Template Studio V3.0,并使用实现了“主/详细”页面的MVVMLight创建一个UWP应用。我确定自己会踢自己,但我无法解决如何从“详细信息”页面访问ViewModel的问题。我需要访问视图模型上的属性以设置某些XAML元素的可见性。

在以前的WTS版本中,我可以使用Locator如下访问ViewModel:

<TextBlock
    Margin="8"
    Text="{x:Bind MasterMenuItem.Name , Mode=OneWay}"
    Style="{StaticResource BodyTextBlockStyle}"
    Visibility="{Binding Source={StaticResource Locator}, Path=DriverDetailsViewModel.EditMode, Converter={StaticResource InverseBoolToVisibilityConverter}}" />

在WTS的V3中,定位器的实现已更改,并且似乎无法作为静态资源访问?

1 个答案:

答案 0 :(得分:0)

我怀疑,在研究了WTS代码之后,我意识到我可以从XAML代码后面访问ViewModelLocator。我只需要将以下内容添加到我的详细信息视图中即可:

private DriverDetailsViewModel ViewModel
{
    get { return ViewModelLocator.Current.DriverDetailsViewModel; }
}

然后以下XAML起作用

Visibility="{x:Bind ViewModel.IsEditMode, Mode=OneWay, Converter={StaticResource InverseBoolToVisibilityConverter}}"