如果主视图包含子视图,则将 ViewModel 属性 绑定到主视图或子视图?

Binding ViewModel property to the primary View or sub view if primary view including sub view?

我有一个主视图。它包括 FirstSubView 和 SecondSubView。

<navigation:Page x:Class="Test.Views.PreimaryView" 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       xmlns:localViews="clr-namespace:Test.Views"
       mc:Ignorable="d"
       xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
       d:DesignWidth="1057" d:DesignHeight="707"
       Title="TestView Page">
<UserControl.Resources>
    <silverlightLib:BooleanVisibilityConverter x:Key="BooleanVisibilityConverter"></silverlightLib:BooleanVisibilityConverter>
</UserControl.Resources>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Background="Transparent">
    <StackPanel Orientation="Horizontal">
        <StackPanel Orientation="Vertical">
            <localViews:FirstSubView DataContext="{Binding VmFirst, Mode=TwoWay}"></localViews:FirstSubView>
            <localViews:SecondSubView DataContext="{Binding VmSecond, Mode=TwoWay}" Visibility="{Binding IsAdjustVisible, Converter={StaticResource BooleanVisibilityConverter}}"></localViews:SecondSubView>
        </StackPanel>
    </StackPanel>
</ScrollViewer>

您在 SecondSubView 中看到我有一个绑定 属性 IsAdjustVisible

我的问题是我在哪里设置它?我在两个 ViewModel 中都设置了它来调整第二个 View 的可见性。但它不起作用,即使它是假的,视图仍然显示。

终于找到问题了。我只需要一个地方来放置属性。哪个是子视图而不是主视图。