在WPF中进行页面内嵌的加载
当存在一定需求时,比如当前页面C左侧是一个A页面,右侧是一个B页面,A页面是一个公用页面时,此时只需要做内嵌A页面,然后B页面进行正常处理,既可以节省时间,又做到了WPF的组件化。
具体处理
当前页面
csharp
<ctrls:WpfBaseControl x:Class="C.ScreenC"
xmlns:sctrls="A">
<Grid Background="{StaticResource TitleControlsBackgroud}" >
<TextBlock Text="ceshi A"/>
<Grid>
<sctrls:A DataContext="{Binding ScreenAViewModel}" />
</Grid>
</Grid>
</ctrls:WpfBaseControl>
A页面处理
在C中加载A进行的处理:
csharp
xmlns:sctrls="A"
为加载A对应的后台数据命名控件地址
csharp
<sctrls:A DataContext="{Binding ScreenAViewModel}" />
为加载对应A的xaml需要的数据,当进行绑定A的整个ScreenAViewModel时,就有了A页面xaml加载时所需要的数据源
C页面加载A页面时处理
可以在C页面后台逻辑ViewModel中,当初始化,时候进行实例化A的ViewModel即可创建A所需要的数据源。切记相关数据遵循WPF绑定机制