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

问题描述 投票:0回答:1

我正在使用Windows Template Studio V3.0,使用实现Master / Detail页面的MVVMLight创建UWP App。我确定我会自己踢,但我无法弄清楚如何从详细信息页面访问ViewModel。我需要访问View Model上的属性来设置某些XAML元素的Visibility。

在以前版本的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中,Locator的实现已经改变,并且似乎不能作为静态资源访问?

mvvm-light uwp-xaml windows-template-studio
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}}"
© www.soinside.com 2019 - 2024. All rights reserved.