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

时间:2016-07-28 13:28:56

标签: xaml silverlight mvvm

我有一个主视图。它包括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

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

1 个答案:

答案 0 :(得分:0)

最后我发现了这个问题。我只需要一个地方来放置属性。哪个是子视图而不是主视图。