1

我基本上有这种情况:

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

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

4

1 回答 1

1

在 ListBoxItem 样式中添加 ContentTemplate="{TemplateBinding ContentTemplate}"

<ContentControl Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}">
                                    <!-- style stuff-->
                                </ContentControl>
于 2013-08-27T20:00:06.307 回答