我基本上有这种情况:
<Style x:Key="MyListBoxItem" TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Grid>
<ContentControl Content="{TemplateBinding Content}">
<!-- style stuff-->
</ContentControl>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
和此ListBox在一个单独的文件中
<ListBox ItemsSource="{Binding Path=Users}" ItemsContainerStyle="{DynamicResource MyListBoxItem}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Id}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但是当我们运行它时,列表框只显示.ToString()。它没有正确绑定。如何使ItemTemplate与contentcontrol内容属性正确连接?
我怀疑自己可能做错了什么。
答案 0 :(得分:1)
在ListBoxItem样式中添加ContentTemplate =&#34; {TemplateBinding ContentTemplate}&#34;
<ContentControl Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}">
<!-- style stuff-->
</ContentControl>