如何在样式的内容模板内容控件中绑定到listbox.itemtemplate

时间:2013-08-27 19:18:08

标签: wpf xaml listbox blend itemtemplate

我基本上有这种情况:

<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内容属性正确连接?

我怀疑自己可能做错了什么。

1 个答案:

答案 0 :(得分:1)

在ListBoxItem样式中添加ContentTemplate =&#34; {TemplateBinding ContentTemplate}&#34;

<ContentControl Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}">
                                    <!-- style stuff-->
                                </ContentControl>