Сортировать 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();
}
}
Надеюсь, это поможет кому-то...
Энди