powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / А вот как менять шаблоны у Item-ов кошерно?
5 сообщений из 5, страница 1 из 1
А вот как менять шаблоны у Item-ов кошерно?
    #39361826
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, есть объекты двух типов, для отображения каждого требуется свой шаблон.
И у меня есть ListBox, в котором эти объекты должны вперемешку отображаться.
Сейчас я делаю ещё один объект, с полями обоих объектов и полем Type. Ну и делаю пару полей с Visibility:

Код: css
1.
2.
3.
4.
5.
6.
7.
8.
	class SomeItem1
	{
		public string Name1 { get; set; }
		public string Name2 { get; set; }
		public int Kind { get; set; }
		public System.Windows.Visibility v1 { get { return Kind == 1 ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed; } }
		public System.Windows.Visibility v2 { get { return Kind == 2 ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed; } }
	}



Ну и в шаблоне указываю, если первый тип - показать одну часть шаблона, если второй - другую:
Код: xml
1.
2.
3.
4.
5.
6.
			<HierarchicalDataTemplate DataType="local:SomeItem1">
				<Grid>
					<Label Content="{Binding Name1}" Visibility="{Binding v1}" Margin="10" />
					<Label Content="{Binding Name2}" Visibility="{Binding v2}" Margin="25,10,10,10" />
				</Grid>
			</HierarchicalDataTemplate>



Чувствую, что криво, а как правильно - не знаю. Кто в курсе, подскажите пожл.
...
Рейтинг: 0 / 0
А вот как менять шаблоны у Item-ов кошерно?
    #39361912
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гугли DataTemplateSelector
...
Рейтинг: 0 / 0
А вот как менять шаблоны у Item-ов кошерно?
    #39361923
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я делаю так:
в ресурсах размещаю TemaplteSelector который берет значение, получает его тип и находит соответствующий шаблон этого типа
то есть селектор всегда универсальный, теперь достаточно закинуть ресурс шаблона <DataTemplate x:Key={x:Type ModelType}"/> и шаблон автоматически подтянется.
Либо делать TemplateSelecor под конкретные типы и шаблоны.
Еще вариант: менять их триггерами, но тут геморов в том, что нужно свойство определяющее тип отображаемого шаблона. (самый стрёмный вариант)
...
Рейтинг: 0 / 0
А вот как менять шаблоны у Item-ов кошерно?
    #39362013
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо, то что надо.
...
Рейтинг: 0 / 0
А вот как менять шаблоны у Item-ов кошерно?
    #39362014
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes, ну не знаю, делать универсальный селектор - это значит что бы скомпилировать, надо везде иметь доступ ко всем классам. Может быть напряжным.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / А вот как менять шаблоны у Item-ов кошерно?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]