Как создать DataTemplate со ссылками - PullRequest
1 голос
/ 21 июля 2010

Я пытаюсь создать DataTemplates для PropertyCollection (PropertyDescriptors) для отображения элементов в коллекции в этом формате,

descriptor1> descriptor2> descriptor3> descriptor4> descriptor5

Каждый дескриптор будет ссылкой (с использованием Гиперссылки), у меня вопрос, могу ли я сделать это с метками (которые не являются хостом ItemsControl)?Если да, может ли кто-нибудь дать мне пример того, как этого добиться с помощью DataTemplates?

Кроме того, есть ли способ получить доступ к дескриптору свойства из DataTemplate?Например, предположим, что я хочу использовать текущий экземпляр дескриптора свойства в качестве CommandParameter.

Благодарим за любую помощь, спасибо.

1 Ответ

1 голос
/ 21 июля 2010

Вы можете попытаться сделать это с ListBox с ItemsPanel, который использует горизонтальную разметку для элементов (в моем примере я просто привязываюсь к списку строк). НТН.

Код:

public List<string> Properties { get; set; }

XAML:

<ListBox ItemsSource="{Binding Properties}">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
                            ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType=ListView}}"
                            MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
                            ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType=ListView}}" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>

    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <Hyperlink NavigateUri="{Binding}">
                    <TextBlock Text="{Binding StringFormat={}{0} >}"/>
                </Hyperlink>
            </TextBlock>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Скриншот:

альтернативный текст http://i25.tinypic.com/28hq7h2.png

...