【问题标题】:Multicolumn ListView in WPF - errorsWPF中的多列ListView - 错误
【发布时间】:2009-08-26 07:08:33
【问题描述】:

我正在尝试在 xaml (visual studio 2008) 中定义一个多列列表视图,然后在 c# 中向其中添加项目。我看过很多关于这个主题的帖子,并尝试了各种方法,但我遇到了错误。

我的 xaml 代码如下,VS 没有标记任何错误。

<ListView Height="234.522" Name="chartListView" Width="266.337">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Name" Width="70"/>
      <GridViewColumn Header="ID" />
    </GridView>
  </ListView.View>
</ListView>

尝试将数据添加到列中, 我创建了一个按钮并将代码放在按钮单击中:

    private void button3_Click(object sender, RoutedEventArgs e)
    {
        chartListView.Items.Add("item1").SubItems.Add("item2");
    }

子项上显示的错误是:

“int”不包含“SubItems”的定义,并且找不到接受“int”类型的第一个参数的扩展方法“SubItems”(您是否缺少 using 指令或程序集引用?) D​​:\开发\VS\pchart\pchart\pchart\Window1.xaml.cs

另外,我尝试查看有关列表视图控件的其他一些帖子,例如

ListView - Inserting Items

我尝试了那里的代码:

ListViewItem 项 = 新 ListViewItem(); item.Text=anInspector.getInspectorName().ToString();

并且在 item.Text 上得到了几乎与 SubItems 相同的错误。我的代码或项目定义中是否有我遗漏的内容?

感谢您的帮助

【问题讨论】:

    标签: wpf listview


    【解决方案1】:

    在 WPF ListView 中没有“子项”之类的东西(也许您将它与 Windows 窗体 ListView 混淆了)。无论如何,Items 属性都会返回objects 的集合,而object 没有SubItems 属性。实际上,ListView 中的每一项都可能有多个属性,您可以使用DisplayMemberBinding 属性指定要显示的属性:

    XAML

    <ListView Height="234.522" Name="chartListView" Width="266.337">
      <ListView.View>
        <GridView>
          <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="70"/>
          <GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}" />
        </GridView>
      </ListView.View>
    </ListView>
    

    C#:

    private void button3_Click(object sender, RoutedEventArgs e)
    {
        chartListView.Items.Add(new { Name = "test1", ID = "test2" });
    }
    

    (不一定是匿名对象,当然可以使用命名类...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      相关资源
      最近更新 更多