0

有没有办法对添加到 ItemsControl 区域的视图进行排序?正在添加的视图在容器中注册并添加到每个唯一模块中的区域。

一些伪代码...

壳:

<Window>  
   <ItemsControl Prism:RegionManager.Region="ItemsRegion"/>  
</Window>

模块:这是模块中的初始化代码。

protected override void RegisterViewsAndServices()
{
    CommonContainerLifetimeManager.Register<IView, ItemView1>();
    Container.RegisterType<IViewModel, ItemViewModel1>("ItemViewModel1");
}

public override void AdditionalInitialization()
{
    var itemView1 = Container.Resolve<ItemView1>();
    RegionManager.Regions["ItemsRegion"].Add(itemView1);
}

使用这种方法,它会按照加载模块的顺序在 shell 的 itemscontrol 中显示添加的视图。根据登录用户的角色加载不同的模块。有没有一种方法,而不必在中间添加一个集合,例如对视图视图模型的属性上的 itemscontrol.items 进行排序?有没有办法强制按特定顺序加载模块?我目前正在使用模块目录。

谢谢

安迪

4

1 回答 1

0

所以我找到了这个问题的答案……至少我在 Prism v4 中找到了答案。

您将 ViewSortHint 类属性添加到 View 后面的代码中。Prism 将找到此属性并根据您在 ViewSortHint 参数中输入的字符串对视图进行排序。

[ViewSortHint("01")]
public partial class SortedButton : UserControl
{
    public SortedButton()
    {
        InitializeComponent();
    }
}

希望这可以帮助某人...

安迪

于 2011-04-26T21:06:36.060 回答