WPF TreeView ItemTemplate и ItemTemplateSelector игнорируются

В моем приложении я получаю эту ошибку каждый раз, когда treeView загружает свои элементы. Эта ошибка замедляет загрузку приложения и занимает не менее двух минут.

Ошибка: System.Windows.Data Error: 26 : ItemTemplate and ItemTemplateSelector are ignored for items already of the ItemsControl's container type; Type='TreeViewItem'

Мой код xaml для дерева: (я использую VB.net на моей модели представления)

<TreeView ScrollViewer.VerticalScrollBarVisibility="Hidden" 
          ItemContainerStyle="{DynamicResource tviStyle}" 
          Background="#FFF0F0F0" BorderBrush="#FFE5E2DB" 
          IsEnabled="{Binding isTreeEnable}" 
          ItemsSource="{Binding PostcodeLijst}" 
          Margin="0" Name="dgStamOverzichtPostcode" />

Привязка ItemsSource представляет собой ObservableCollection(Of TreeViewItem), который заполняется из базы данных.

Я посмотрел в Google для ответа, но до сих пор я не смог найти его! Кто-нибудь знает, как это исправить?

Заранее благодарю за любую помощь

2 ответа

Решение

Вместо создания списка TreeViewItems в вашей модели представления, создайте список объектов, которые просто описывают данные, которые вы хотите показать, даже если это так просто, как

class Item
{
   public string Header { get;set; }
}

TreeViewItem уже имеет шаблон, связанный с ним.

Вы связываете элементы, которые уже являются элементами пользовательского интерфейса (здесь: TreeViewItems). Обычно вы привязываете любые объекты к вашему itemsSource, а ItemsContainerGenerator затем создает TreeViewItems для каждого связанного элемента.

Это не может быть сделано в вашем случае, у вас уже есть TreeViewItems, поэтому шаблоны не могут быть применены, и именно поэтому вы получаете это сообщение об ошибке.

Вы можете решить это следующим образом:

a) Свяжите объекты DataObject с вашим деревом, а не с TreeViewItems, они будут созданы автоматически

б) присвойте свои стили непосредственно древовидным элементам, которые у вас уже есть

Смотрите также эту ссылку

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