gpt4 book ai didi

c# - 如何将列表列表绑定(bind)到 WPF 中的列表框?

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:20 24 4
gpt4 key购买 nike

我在 C# 中有一个列表列表,其中每个列表包含 3 个整数

List<List<int>> Data = new List<List<int>>();
data.Add(new List<int>{ 1, 2, 3});

现在在 WPF 中,我有一个列表框,我想将这些值绑定(bind)到其中。下面的代码是我现在的代码,但正如预期的那样,它说没有“项目”属性。

<ListBox ItemsSource="{Binding Data}" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
</Grid.RowDefinitions>

<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Item1}" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Item2}" />
<TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding Item3}" />
</Grid>
</DataTemplate>
</ListBox>

有人可以解释我必须做什么才能让列表框中显示这些数字吗?

提前致谢。

最佳答案

您需要在 ListView 中索引您的绑定(bind)项目模板,像这样:

<ListBox ItemsSource="{Binding Data}" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
</Grid.RowDefinitions>

<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding [0]}" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding [1]}" />
<TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding [2]}" />
</Grid>
</DataTemplate>
</ListBox>

但是,如果您计划在每个 List<int> 中包含动态数量的元素, 你可以再放一个 ListView在原来ListView .

此外,此链接:https://web.archive.org/web/20120814100526/http://msdn.microsoft.com/en-us/library/ms742451.aspx如果您遇到绑定(bind)路径问题,它真的很方便!

关于c# - 如何将列表列表绑定(bind)到 WPF 中的列表框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56138212/

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