gpt4 book ai didi

wpf - 我似乎无法让 DataTemplate 在 WPF 中工作

转载 作者:行者123 更新时间:2023-12-02 00:34:09 26 4
gpt4 key购买 nike

我已经尝试了几种不同的方法来使一个简单的 DataTemplate 示例起作用。但是,我没有任何运气。下面的 XAML 的数据上下文正在代码隐藏中设置。此处包含的两个代码示例包含在我的应用程序的元素中,但这是唯一的外部考虑因素。第一个代码示例有效。它显示数据。但是,如果我将功能放在 DataTemplate 中,然后尝试使用该模板,它就不起作用。

工作示例:

    <Canvas Height="100" Width="300">
<TextBlock Text="{Binding Path=DataSheet.Item.ClassId}" Canvas.Left="10"></TextBlock>
<TextBlock Text="{Binding Path=DataSheet.Item.ClassName}" Canvas.Right="100"></TextBlock>
</Canvas>

不起作用的示例(但不会抛出错误):

<Window.Resources>
<DataTemplate x:Key="FirstTemplate">
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Key" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox Text="{Binding ClassId}"></TextBox>
<TextBox Text="{Binding ClassName}"></TextBox>
</Grid>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Path=DataSheet.Item}" Grid.IsSharedSizeScope="True"
HorizontalAlignment="Stretch"
ItemTemplate="{StaticResource ResourceKey=FirstTemplate}"/>
</Grid>

任何关于我做错了什么的建议都将不胜感激。

谢谢。

最佳答案

您的 ItemSource 应该是一个集合,同时 DataSheet.Item 看起来像一个单独的项目。您应该将其包装到集合中。

或者您可以手动添加 ListBoxItem。

<ListBox>
<ListBoxItem Content="{Binding DataSheet.Item}" ContentTemplate="{StaticResource FirstTemplate}"/>
</ListBox>

关于wpf - 我似乎无法让 DataTemplate 在 WPF 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5357202/

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