答案 0 :(得分:4)
我会创建一个3行Grid
,其中心项为ContentControl
。将其绑定到视图模型上的CurrentPage
属性。
创建一个Base Page
类,并为要显示的每个数据页面创建一个子类。此子类也是每个页面的视图模型。
为DataTemplate
的每个子类添加Page
以供ContentControl
使用,确保指定Type
属性(这是物理附加页面类型的内容)基于CurrentPage
属性的UI。 DataTemplate
的内容应为UserControl
,其中包含每种网页类型的用户界面。
现在,当您想要更改页面时,只需将CurrentPage设置为您想要的页面实例,它就会自动更改。
此模式将使每个页面的UI与所有其他UI分开,并为它们提供强大的视图模型(Page
子类)。它允许超级轻松地更改页面。并很好地遵循MVVM模式。您甚至可以将所有页面加载到您向用户显示的列表中。通过更多绑定,用户选择页面可以直接进入页面更改行为,而只需要很少的工作。
答案 1 :(得分:-2)
创建一个包含3行的页面。顶行是' auto'的高度。中间一排是高度' *'并且最下面一行是高度' auto'同样。顶部和底部行将占用页眉和页脚所需的空间,而中间行将占用房间的其余部分。
答案 2 :(得分:-2)
您可以使用网格
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<local:TopPage Grid.Column="0" Grid.Row="0" />
<local:MidPage Grid.Column="0" Grid.Row="1" />
<local:BottomPage Grid.Column="0" Grid.Row="2" />
</Grid>