如何控制棱镜中的一个区域

时间:2009-08-30 12:47:33

标签: .net wpf controls prism

有没有人知道如何让控件与Prism中的某个区域相关联。

例如,如果我有以下代码来注册区域

RegionManager.SetRegionName(Outlook.navigationContainer,“navigationContainer”);

如何通过名称“navigationContainer”获取控件Outlook.navigationContainer?

谢谢你。

4 个答案:

答案 0 :(得分:1)

区域应该从您那里抽象出区域控制的细节。为什么需要控制?

答案 1 :(得分:1)

回答你的问题:

您可能会使用自定义区域行为创建跟踪此内容的内容。可以在此处找到RegionBehaviors的详细信息:http://msdn.microsoft.com/en-us/library/dd458944.aspx

您只需创建一个跟踪区域名称和关联控件的字典,因为您可以从区域行为中访问这两者。

如果您需要在视图添加到区域时访问控件,您可能需要使用区域适配器来实现此目的(详见上面的相同链接)。 / p>

然而 ,我同意肯特在这里的150%,我闻到你在做一些你不应该做的事情。如果您尝试自定义布局或创建动画/等,您应该专注于一个不需要您打破区域为您提供的抽象的策略。

像数据触发器一样简单的东西可以为您提供所需的内容,并且不会强迫您从将该视图添加到该区域的代码中了解过多的容器。

答案 2 :(得分:0)

我认为你不能通过区域名称轻松获得相关的控制。

SetRegionName方法仅在指定的控件上设置“RegionNameProperty”DependencyProperty。你唯一能做的就是在拥有控件时取回名字。

答案 3 :(得分:0)

强调一下,

如果要更改注入区域的模块上的属性,最好的方法是根据您的具体情况使用路由事件或路由命令。

我这样做的方式是,在初始化模块时,我订阅了需要更改的属性的事件。如果系统中的任何其他模块需要更改该属性,我只需触发该事件。

我希望这会让你走上正轨。

此致 科尼利厄斯克鲁格