c# - DataTemplate 内的棱镜区域
问题描述
我已经实现了 a WizardControl
(由 anUserControl
和关联的 表示ViewModel
)。该向导应该在没有棱镜的情况下导航 - 它有自己的逻辑。
向导页面已注册DataTemplates
:
<UserControl.Resources>
<DataTemplate DataType="{x:Type vm:ViewAViewModel}">
<view:ViewAView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ViewBViewModel}">
<view:ViewBView />
</DataTemplate>
</UserControl.Resources>
<Grid>
...
<ScrollViewer>
<ContentControl Content="{Binding CurrentPage}" />
</ScrollViewer>
<Button Content="Prev" Command="{Binding PrevCommand}" />
<Button Content="Next" Command="{Binding NextCommand}" />
</Grid>
由CurrentPage
向导选择ViewModel
。
在特定的向导页面上,我想使用棱镜Region
<ContentControl prism:RegionManager.RegionName="InnerRegion" />
但是当我调用_regionManager.RequestNavigate(...)
里面的区域时,RegionManager
永远不会创建。
这里出了什么问题?
解决方案
假设您有充分的理由这样做,您可以按照那里的描述从代码隐藏设置区域名称和区域管理器......
基本上你把这些行放在ViewA
's 的构造函数中:
RegionManager.SetRegionName( theNameOfTheContentControlInsideViewA, "viewARegionName" );
RegionManager.SetRegionManager( theNameOfTheContentControlInsideViewA, ServiceLocator.Current.GetInstance<IRegionManager>() );
推荐阅读
- r - 在纬度/经度边界内绘制地图
- javascript - 在没有 es6 和导入的情况下使用可拖动的全日历
- python - 多元线性回归有时会以“NaN”结尾
- angular - 有没有一种确定代码中设备宽度的好方法?
- ruby-on-rails - Rails 问题:创建用户可自定义 UI 文本的最佳方式是什么
- java - 添加选项卡时 JFrame 变为蓝色
- tsqlt - 无法导入以下密钥文件:运行构建 tSLQt 时的 tSQLtOfficialSigningKey.pfx
- sql-server - 使用 Powershell 部署数据库 dacpac:使用“3”参数调用“部署”的异常:“无法部署包。”
- windows - 仅重新映射 Windows 键,保留 Windows 组合键
- matlab - 使用matlab向数据中添加高斯白噪声