HierarchicalDataTempalte c ItemTemplateSelector

228
14 июля 2017, 02:17

Имеется DataTemplateSelector:

class DisplayTemplateSelector : DataTemplateSelector
{
    public DataTemplate TemplateA { get; set; }
    public DataTemplate TemplateB { get; set; }
    public override System.Windows.DataTemplate SelectTemplate(object item, System.Windows.DependencyObject container)
    {
        var baseClass = item as BaseClass;
        switch (baseClass.Type)
        {
            case A:
                return TemplateA;                   
            case B:
                return TemplateB;                 
            default:
                return null;
        }
    }
}

XAML

<HierarchicalDataTemplate x:Key="key" 
                          ItemsSource="{Binding Streams, Mode=OneWay}" 
                          ItemTemplateSelector="{StaticResource displayTemplateSelector}">
    <TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>

<HierarchicalDataTemplate DataType="{x:Type A}" x:Key="a">
    <TextBlock Text="{Binding }"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type B}" x:Key="b">
    <TextBlock Text="{Binding }"/>
</HierarchicalDataTemplate>

На данном этапе все работает. Но как только я захочу установить ItemSource и ItemTemplate для одного из A или B шаблона, получаю исключение:

Для двусторонней сборки требуется Path или XPath.

и предупреждение в выводе:

Both 'ItemTemplate' and 'ItemTemplateSelector' are set; 'ItemTemplateSelector' will be ignored. TreeViewItem:'TreeViewItem' (Name='')

В чем проблема?

UDP:

проблема была из-за привязки в шаблонaх A,B.

<TextBlock Text="{Binding }"/>

нужно было привязываться к конкретному полю.

READ ALSO
Xaml Triger не срабатывает

Xaml Triger не срабатывает

привет есть стиль

204
Программно изменить таймер пробуждения в управлении электропитанием

Программно изменить таймер пробуждения в управлении электропитанием

На удаленных филиалах стоят компьютеры (XP, 7, 10), интернет там ужасныйИх необходимо периодически включать для прокачки данных

216
Xamarin подключиться к серверу через WiFi

Xamarin подключиться к серверу через WiFi

Есть приложение которое должно подключаться к серверу и принимать данныеСервер находится на PC

208
Плагин для Visual Studio [требует правки]

Плагин для Visual Studio [требует правки]

Написание плагина это моя курсовая работа, помогите пожалуйста в нескольких вопросах:

227