我正在尝试创建 custom ItemsControl
,它显示按钮列表(为了练习),非常简单,如下所示:
<Style TargetType="{x:Type local:MyControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MyControl}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ItemsPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Button Content="{Binding }" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
我想让它动态化,因为我可以将对象列表绑定到ItemsSource
并显示来自这些对象的指定属性作为要在按钮中显示的文本。类似于DisplayMemberPath
在 a 中的工作方式ComboBox
(指定要显示的字符串属性时),但是我读到您不能同时使用ItemTemplate
两者DisplayMemberPath
?那么在我的情况下如何实现类似的属性。