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

标签 c# wpf binding

我在 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/

相关文章:

swift - 在 SwiftUI 中绑定(bind) ForEach

c# - 使用指定地址创建 WCF 服务客户端而不指定配置名称

c# - 在 EF 中不共享主键的多态关联

wpf - 无法在 WPF 中找到静态引用的枚举类型

wpf - 绑定(bind)到 datacontext parent-WPF 的属性

WPF ViewModel 实例化影响子继承

c# - Web 服务不返回对象中的整数数据

c# - error 该进程无法访问该文件,因为它正被另一个进程使用

c# - 如果属性在构造函数中初始化,则似乎未设置 XAML 绑定(bind)

c# - Ninject:将客户端的程序集作为构造函数参数传递并使用属性从客户端指定所需的实现