Сортировать ItemsControl Prism v2.2 Region без связанной коллекции? - PullRequest
0 голосов
/ 04 ноября 2010

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

0 голосов
/ 27 апреля 2011

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

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

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

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

Andy

...