gpt4 book ai didi

.net - WPF - 数据模板未在列表框项目模板中应用

转载 作者:行者123 更新时间:2023-12-01 10:00:17 27 4
gpt4 key购买 nike

我正在尝试在包含一些示例数据的列表框中添加数据模板,但它们似乎对我的数据模板的列表框项目没有影响,以下是使用的代码-

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.Resources>
<DataTemplate x:Key="test1">
<TextBlock Background="Red">
</TextBlock>
</DataTemplate>
</Grid.Resources>
<ListBox ItemTemplate="{StaticResource test1}">
<ListBoxItem>A</ListBoxItem>
<ListBoxItem>B</ListBoxItem>
<ListBoxItem>C</ListBoxItem>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" ></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</Grid>
</Page>

listboxitem 的背景没有变成红色,我知道我可以使用 itemcontainerstyle 实现类似的事情,但想知道为什么这里没有应用数据模板,

最佳答案

好吧,如果你打开你的绑定(bind)错误信息,那么你会看到

System.Windows.Data Error: 26 : ItemTemplate and ItemTemplateSelector are ignored for items already of the ItemsControl's container type; Type='ListBoxItem'

如果您有 ListBox绑定(bind)它的ItemSource甚至说一个集合 List<string> MyStrings

比如

<ListBox ItemTemplate="{StaticResource test1}"
ItemsSource="{Binding MyStrings}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>

DataTemplate

<DataTemplate x:Key="test1">
<TextBlock Background="Red"
Text="{Binding .}" />
</DataTemplate>

然后你会看到你的DataTemplate应用得很好。

关于.net - WPF - 数据模板未在列表框项目模板中应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com