Почему я не могу использовать RadrikanBar Telerik со стандартной коллекцией объектов? - PullRequest
0 голосов
/ 02 июня 2011

Я пытаюсь использовать Telerik's RadPanelBar для отображения списка объектов.Я хотел бы, чтобы имя отображалось, когда оно свернуто, и объект, отображаемый при раскрытии.По некоторым причинам это не похоже на работу.Я неправильно использую этот элемент управления ??

<telerik:RadPanelBar ItemsSource="{Binding Contacts}" />

Элемент управления отображается правильно с правильным количеством элементов, однако я не могу развернуть ни один из элементов.Я хотел бы, чтобы это выглядело как-то вроде:

<Item Header="{Binding Name}" IsExpanded="False" />
<Item Header="{Binding Name}" IsExpanded="True">
    <ContentControl Content="{Binding }" />
</Item>
<Item Header="{Binding Name}" IsExpanded="False" />
<Item Header="{Binding Name}" IsExpanded="False" />

Ответы [ 2 ]

1 голос
/ 03 июня 2011

По какой-то причине RadPanelBar необходимо привязать к коллекции внутри коллекции.Это не работает с единственным объектом.Обходное решение, которое я использую, это:

<telerik:RadPanelBar ItemsSource="{Binding Contacts}">
    <telerik:RadPanelBar.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding ObnoxiousWorkaroundForTelerik}">
            <TextBlock Text="{Binding Name}" />
            <HierarchicalDataTemplate.ItemTemplate>
                <DataTemplate>
                    <ContentControl Content="{Binding }" />
                </DataTemplate>
            </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
    </telerik:RadPanelBar.ItemTemplate>
</telerik:RadPanelBar>

В моем ContactClass я добавил коллекцию только для этого ....

private ObservableCollection<AgencyContact> _forTelerik;
public ObservableCollection<AgencyContact> ObnoxiousWorkaroundForTelerik
{
    get
    { 
        if (_forTelerik == null)
        {
            _forTelerik = new ObservableCollection<AgencyContact>();
            _forTelerik.Add(this);
        }
        return _forTelerik;
    }
}

Если кто-то знает другой обходной путь, который не требуетмне, чтобы создать коллекцию моего класса в моем классе, пожалуйста, дайте мне знать!

0 голосов
/ 02 июня 2011

У меня нет опыта работы с этим элементом управления, в частности, но я знаю, что в других элементах управления WPF, если вы пытаетесь отобразить что-то, что разворачивается и разворачивается, вам нужно определить HierarchicalDataTemplate.См .: http://msdn.microsoft.com/en-us/library/system.windows.hierarchicaldatatemplate.aspx или для более пошагового подхода см. Здесь: http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx.

Глядя на форум Telerik, похоже, что в этом посте есть пример такого действия: http://www.telerik.com/community/forums/wpf/panelbar/radpanelbar-datatemplate.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...