0

我正在使用 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 中,定位器的实现发生了变化,并且似乎无法作为静态资源访问?

4

1 回答 1

0

正如我所怀疑的,在进一步研究了 WTS 代码后,我意识到我可以从 XAML 代码隐藏中访问 ViewModelLocator。我只需要将以下内容添加到我的 detailsview 代码隐藏中:

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

然后以下 XAML 工作

Visibility="{x:Bind ViewModel.IsEditMode, Mode=OneWay, Converter={StaticResource InverseBoolToVisibilityConverter}}"
于 2019-03-15T10:51:14.643 回答