我有一个具有标题区域和内容区域的页面。内容区只包含一个用户控件。我们有一个类结构,AbstractClassA 是所有要显示的类的基类。抽象类 B 和 C 都继承自 A。具体类 B1 和 B2 继承自 B,具体类 C1 和 C2 继承自 C。
然后,该用户控件包含许多显示 A 信息的控件,以及两个附加控件,每个控件一个用于 B 和 C,仅当显示的类属于相关类型时才可见。
然后,这些附加控件显示与其相应抽象类相关的所有字段,以及与具体类相关的附加控件,同样仅在基础类具有正确类型时才显示,然后具有与具体类相关的字段。
这一切都很好,只是我们正在处理的一些类有太多的字段,它们不再适合屏幕了。所以,显而易见的事情 - 将内容包装在滚动查看器中。
唯一的问题是这似乎不起作用。
后续控件的可见性绑定到视图模型上的属性(通过布尔到可见性转换器),该属性确定正在处理的类类型。后备值是折叠的,因此它们开始不可见。不确定所需的大小在随后是否以某种方式无法传递给滚动查看器?由于滚动条没有出现,尽管设置为自动。下面的xml
<Grid x:Name="LayoutRoot">
<!-- Divide the page into a row for the header and 1 further rows which are used to position the content -->
<Grid.RowDefinitions>
<RowDefinition Height="{StaticResource HeaderRowHeight}" />
<RowDefinition Height="*" />
<RowDefinition Height="100" />
</Grid.RowDefinitions>
<Grid Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2">
<!-- Page header -->
</Grid>
<!-- Main page content follows -->
<Grid Grid.Row="1"
Width="auto">
<ScrollViewer Height="700"
VerticalScrollBarVisibility="Auto">
<dataEdit:CaseTypeInternalEditControl Height="Auto" />
</ScrollViewer>
</Grid>
</Grid>
我也尝试将滚动查看器放在用户控件中,但无济于事。我错过了什么?