我有ListView
我想在其中的項目中應用自定義的ControlTemplate
。它是這樣定義的:WPF ControlTemplate AND DataTemplate
<ListView ItemsSource="{Binding MyAwesomeItems}" ...
MyAwesomeItems包含不同的類。所以我想:「好吧,你好DataTemplates。」
爲了使包含的項目看我希望他們的樣子,我已經定義了一個ControlTemplate
這樣的:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border><ContentControl Content="{TemplateBinding Content}"/></Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
我已經使用ContentControl
與綁定到TemplateBinding Content
。我預計WPF會使用我爲它定義的任何DataTemplate將我的項目插入ContentControl
。
但相反,它看起來像WPF只是使用項目.ToString()
並不適用任何DataTemplates。這是預期的行爲?
我想達到的目標是:有一個項目,每個項目的容器看起來正是我想要的方式和內容容器來自DataTemplate中的列表。
改爲使用ContentPresenter。區別在於如何設置'DataContext'。 –
沒關係。同樣的結果。 – Hemisphera
我忘了提及:不要設置「內容」!只需使用 。 –