Каков формат свойства DataType для DataTemplate или HierarchicalDataTemplate в WPF? - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь понять, какой формат для параметра DataType для DataTemplate или HierarchicalDataTemplate. В Интернете есть множество примеров, которые я могу скопировать и начать работать, но я не понимаю, какие у меня есть варианты.

Например:

<DataTemplate DataType="{x:Type model:DepartmentSelectionViewModel}">

Я бы хотелпонять, что означает x: Type. И что означает модель: DepartmentSelectionViewModel.

Или:

<HierarchicalDataTemplate DataType="{x:Type r:NetworkViewModel}" ItemsSource="{Binding Children}">

Опять же, он имеет x: Type. Но на этот раз r: NetworkViewModel.

Другие примеры будут иметь sys: или local :. Что означают все эти настройки? Как я могу узнать, какие существуют другие настройки? (Настройки - это даже правильное слово для их описания?)

1 Ответ

1 голос
/ 10 октября 2019

model и r относятся к сопоставлениям пространства имен XAML .

Они часто встречаются в корневом теге или файле XAML и определяют пространства имен CLR, в которых определены типы (классы) DepartmentSelectionViewModel и NetworkViewModel соответственно:

<Window ... xmlns:model="clr-namespace:Project1" ... />

namespace Project1
{
    public class DepartmentSelectionViewModel { ... } 
}

Вы можете определить столько сопоставлений пространств имен, сколько хотите.

x:Type относится к типу, для которого будет применяться неявный DataTemplate , то есть DataTemplateсо свойством DataType, установленным на {x:Type model:DepartmentSelectionViewModel}, будет применяться ко всем DepartmentSelectionViewModel объектам в коллекции Items TreeView при визуализации представления.

...