在WPF项目中,我正在创建一个包含许多步骤的向导。每个步骤都有自己的看法。当前,每个视图都具有相同的外部XAML元素,例如,步骤的标题为TextBlock
,但其下的内容不同。
例如,一个典型的视图如下所示:
STEP X VIEW
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="Step X text goes here"/>
<Grid Grid.Row="1">
<!-- CONTENT OF STEP X GOES HERE -->
</Grid>
</Grid>
我想做的是能够“分解”每个步骤的公共外部XAML到另一个视图,并将每个步骤的内容作为该新分解视图的内容放置。这样,我可以避免重复相同的外部XAML,并且如果我决定更改每个步骤标题的实现,则只需要在一个地方进行即可。
我确定ContentPresenter
是解决方案的一部分。因此,类似:
WRAPPERVIEW:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="Step X text goes here"/>
<Grid Grid.Row="1">
<ContentPresenter Content="Content of Step X ??????"/>
</Grid>
</Grid>
我的问题是:
1)我对WrapperView
的实现是否正确?
2)ContentPresenter
中WrapperView
内容属性的绑定是什么?
3)如何使用Text
为每一步自定义TextBlock
的{{1}}?
4)如何使用WrapperView
来使客户端XAML看起来像任何步骤视图的XAML。
因此,将WrapperView
用于StepXView
新的STEP X VIEW
WrapperView