powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
7 сообщений из 7, страница 1 из 1
Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
    #37248642
Grizzly284
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!

У меня возникла следующая ситуация. Существует два разных TreeView каждый из которых отображает элементы разнообразных типов данных, некоторые типы могут отображаться как в первом, так и во втором TreeView. DataTemplate, используемые для одного и того же типа заведомо разные, и не будут применятся совместно в одном и том же TreeView.
Можно ли как то указать какие DataTemplate для какого TreeView будут применятся по умолчанию без, использования DataTemplateSelector?
...
Рейтинг: 0 / 0
Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
    #37249520
Руки-крюки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grizzly284,
Очень просто и эффективный способ:
В ресурсах, доступных итем контролу, обьявляем:
Код: plaintext
1.
2.
3.
4.
5.
6.
  <DataTemplate DataType="{x:Type vm:AllCustomersViewModel}">
    <vw:AllCustomersView />
  </DataTemplate>

  <DataTemplate DataType="{x:Type vm:CustomerViewModel}">
    <vw:CustomerView />
  </DataTemplate>

Как работает: всякий раз как контент презентер (в том числе и контент презентер итем контрола) будет получать в Content - AllCustomersViewModel, он будет добавлять в дерево AllCustomersView, и подставлять в дата контекст этой вьюхи - вью модель, тобишь AllCustomersViewModel.
...
Рейтинг: 0 / 0
Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
    #37251434
Grizzly284
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руки-крюки,

Прошу прощения за задержку с ответом, так уж вышло.
Я тоже думал что можно указать DataTemplate в шаблоне но у меня так не получается. Единственое можно так это добавить ItemTemplate (но только один), а это совсем не то что нужно. Я набросал простенький пример :


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:lc="clr-namespace:WpfApplication1"
        Title="DataTemplate" Height="350" Width="525" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen">
	<Window.Resources>
		
		<!--Шаблоны даных для первого ItemsTemplate-->
		<HierarchicalDataTemplate DataType="{x:Type lc:Person}" x:Key="personTemplate1">
			<Border BorderThickness="3" BorderBrush="Blue"
					  Margin="3">
				<TextBlock Text="{Binding Name}"/>
			</Border>
		</HierarchicalDataTemplate>
		
		<HierarchicalDataTemplate DataType="{x:Type lc:Car}" x:Key="carTemplate1">
			<Border BorderThickness="3" BorderBrush="Red"
					  Margin="3">
				<TextBlock Text="{Binding Model}"/>
			</Border>
		</HierarchicalDataTemplate>
		
		<HierarchicalDataTemplate DataType="{x:Type lc:Material}"  x:Key="materialTemplate1">
			<Border BorderThickness="3" BorderBrush="LimeGreen"
					  Margin="3">
				<TextBlock Text="{Binding Title}"/>
			</Border>
		</HierarchicalDataTemplate>

		
		<!--Шаблоны даных для второго ItemsTemplate-->
		<HierarchicalDataTemplate DataType="{x:Type lc:Car}" >				<!--x:Key="carTemplate2"-->
			<Border BorderThickness="1" BorderBrush="Red" CornerRadius="5"
					  Margin="3" Padding="3">
				<TextBlock Text="{Binding Model}"/>
			</Border>
		</HierarchicalDataTemplate>
		
		<HierarchicalDataTemplate DataType="{x:Type lc:Person}" >			<!--x:Key="personTemplate2"-->
			<Border BorderThickness="1" BorderBrush="Blue" CornerRadius="5"
					  Margin="3" Padding="3">
				<TextBlock Text="{Binding Name}"/>
			</Border>
		</HierarchicalDataTemplate>
		
		<HierarchicalDataTemplate DataType="{x:Type lc:Material}" >			<!--x:Key="materialTemplate2"-->
			<Border BorderThickness="1" BorderBrush="LimeGreen" CornerRadius="5"
					  Margin="3" Padding="3">
				<TextBlock Text="{Binding Title}"/>
			</Border>
		</HierarchicalDataTemplate>
	</Window.Resources>
	
	
	
	
	
	<StackPanel Orientation="Horizontal">
		<TreeView Name="PART_TreeViev01"
					 Margin="5"
					 Background="LightSteelBlue"
					 MinHeight="100"
					 >			
		</TreeView>		
		<TreeView Name="PART_TreeViev02"
					 Margin="5"
					 Background="LightPink"
					 MinHeight="100">			
		</TreeView>
	</StackPanel>
</Window>

Если вам не сложно укажите как тут нужно поступить.

Файл с решением для VS2010 прилагаелся к сообщению
...
Рейтинг: 0 / 0
Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
    #37251436
Grizzly284
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините прикрепить само решение у меня не пролучилось.
...
Рейтинг: 0 / 0
Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
    #37254005
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Grizzly284Можно ли как то указать какие DataTemplate для какого TreeView будут применятся по умолчанию без, использования DataTemplateSelector?

Нет.
...
Рейтинг: 0 / 0
Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
    #37254097
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
Complex Hierarchical Data Templates . Похоже, из твое серии
...
Рейтинг: 0 / 0
Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
    #37260043
Grizzly284
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
i,

Да, спасибо я пользовался похожим подходом ( Organizing Heterogeneous Data on a WPF TreeView ).
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Можно ли как то использовать DataTemplate по умолчанию для ItemsControl
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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