Сортировать ItemsControl Prism v2.2 Region без связанной коллекции?

Есть ли способ сортировки представлений, которые добавляются в область 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);
}

При таком подходе он показывает добавленные представления в элементе управления оболочки в порядке загрузки модулей. В зависимости от роли вошедшего в систему пользователя загружаются различные модули. Есть ли способ, без необходимости добавлять промежуточную коллекцию, например, сортировать itemscontrol.items по свойству модели представления представления? Есть ли способ заставить модули загружаться в определенном порядке? В настоящее время я использую каталог модулей.

Спасибо

Энди

1 ответ

Так что я нашел ответ на этот вопрос... По крайней мере, я нашел ответ в Prism v4.

Вы добавляете атрибут класса ViewSortHint в код представления. Prism найдет этот атрибут и отсортирует представления на основе строки, введенной в параметре ViewSortHint.

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

Надеюсь, это поможет кому-то...

Энди

Другие вопросы по тегам