Silverlight的Prism:如何在区域内以特定顺序维护视图

Ari*_*lBH 3 c# silverlight prism silverlight-4.0

我正在为SL创建一种"导航面板"(实际上是一个ItemControl),并使用Regions允许每个模块将其链接添加到面板.

问题是模块加载不一致,因此面板中链接的顺序可以根据模块加载顺序而改变.

限制模块顺序是不可能的.

其他可行的选项是将区域的Views Collection绑定到ItemControl的顺序,问题是ViewCollection非常有限,因此对它进行排序非常困难.

我错过了一个选项吗,你有什么想法吗?

谢谢Ariel

Jes*_*det 7

在Prism4中,您只需将ViewSortHintAttribute应用于您的视图:

[ViewSortHint("100")]
class FirstView : UserControl { }

[ViewSortHint("200")]
class SecondView : UserControl { }
Run Code Online (Sandbox Code Playgroud)

区域上的默认排序比较器将获取此属性并相应地对视图进行排序.您可以将任何字符串放入属性中,但我倾向于使用中等大小的数字,这样我就可以轻松地在现有字符之间添加新视图.