我正在尝试为PropertyCollection(PropertyDescriptors)创建DataTemplates,以此格式显示集合中的项目,
descriptor1>描述符2> descriptor3> descriptor4> descriptor5
每个描述符都是一个链接(使用超链接),我的问题是我可以使用标签(不是ItemsControl主机)吗?如果是的话,任何人都可以举例说明如何使用DataTemplates实现这一目标吗?
另外,无论如何都要从DataTemplate访问属性描述符?例如,假设我想使用属性描述符的当前实例作为CommandParameter。
感谢任何帮助,谢谢。
答案 0 :(得分:1)
您可以尝试使用带有ItemsPanel的ListBox来执行此操作,这些ItemsPanel使用项目的水平布局(我只是绑定到我的示例中的字符串列表)。 HTH。
代码:
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>
截图: