我正在使用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中,定位器的实现已更改,并且似乎无法作为静态资源访问?
答案 0 :(得分:0)
我怀疑,在研究了WTS代码之后,我意识到我可以从XAML代码后面访问ViewModelLocator。我只需要将以下内容添加到我的详细信息视图中即可:
private DriverDetailsViewModel ViewModel
{
get { return ViewModelLocator.Current.DriverDetailsViewModel; }
}
然后以下XAML起作用
Visibility="{x:Bind ViewModel.IsEditMode, Mode=OneWay, Converter={StaticResource InverseBoolToVisibilityConverter}}"