ヘッダー領域とコンテンツ領域を持つページがあります。コンテンツ領域には、ユーザーコントロールが 1 つだけ含まれています。AbstractClassA は、表示されるすべてのクラスの基本クラスです。抽象クラス B と C は両方とも A から継承します。具象クラス B1 と B2 は B から継承し、具象クラス C1 と C2 は C から継承します。
このユーザー コントロールには、A の情報を表示する多数のコントロールと、B と C にそれぞれ 1 つずつ追加された 2 つのコントロールが含まれており、表示されているクラスが関連するタイプの場合にのみ表示されます。
これらの追加のコントロールは、対応する抽象クラスに関連するすべてのフィールドを表示し、具象クラスに関連する追加のコントロールを表示します。これも、基になるクラスが正しいタイプの場合にのみ表示され、具象クラスに関連するフィールドがあります。
これはすべて正常に機能していますが、扱っているクラスの一部には画面に収まりきらないほど多くのフィールドがあります。したがって、やるべきことは明らかです - コンテンツをスクロールビューアにラップします。
唯一の問題は、これが機能していないように見えることです。
後続のコントロールの可視性は、処理されるクラスのタイプを決定する (bool から可視性へのコンバーターを介して) ビューモデルのプロパティにバインドされます。フォールバック値は折りたたまれているため、非表示になります。その後、必要なサイズが何らかの形でスクロールビューアに渡されていないかどうかわかりませんか? 自動に設定されているにもかかわらず、スクロールバーが表示されないため。以下のxaml
<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>
また、スクロールビューアをユーザーコントロール内に配置しようとしましたが、役に立ちませんでした。私は何が欠けていますか?