Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在没有任何数据绑定的情况下以编程方式添加多列ListViewItem?_C#_Wpf_Listviewitem_Winforms - Fatal编程技术网

C# 如何在没有任何数据绑定的情况下以编程方式添加多列ListViewItem?

C# 如何在没有任何数据绑定的情况下以编程方式添加多列ListViewItem?,c#,wpf,listviewitem,winforms,C#,Wpf,Listviewitem,Winforms,我有一个包含3个标题的ListView,用XAML声明如下: <ListView Name="myListView"> <ListView.View> <GridView> <GridViewColumn Header="H1"/> <GridViewColumn Header="H2"/> <GridViewColumn Header="H3"/> </Grid

我有一个包含3个标题的ListView,用XAML声明如下:

<ListView Name="myListView">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="H1"/>
      <GridViewColumn Header="H2"/>
      <GridViewColumn Header="H3"/>
    </GridView>
  </ListView.View>
</ListView>
这会将每列设置为字符串“Content”。如何更改上面的代码,以便添加一个ListViewItem,分别在第一、第二和第三列下显示“内容1”、“内容2”和“内容3”?我试图在ListViewItem中查找子项或ListViewSubItem属性,但未找到任何内容

我想有一个简单的解决办法,但也许我错了。请不要提及数据绑定,因为我只想回答以编程方式设置Content属性以反映每列中的单个更改的问题


非常感谢。

这不是数据绑定。将Binding语句视为给列命名

<ListView Name="myListView">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="H1" DisplayMemberBinding="{Binding Col1}"/>
            <GridViewColumn Header="H2" DisplayMemberBinding="{Binding Col2}"/>
            <GridViewColumn Header="H3" DisplayMemberBinding="{Binding Col3}"/>
        </GridView>
    </ListView.View>
</ListView>
这就是你要做的

您必须先设置列标题,否则不会显示任何内容。使用字符串数组添加列表视图项

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        listView1.View=View.Details;
        //Set Columns
        listView1.Columns.Add("Col1");
        listView1.Columns.Add("Col2");
        listView1.Columns.Add("Col3");
        //Fill Rows
        ListViewItem lvi;
        lvi=new ListViewItem(new string[] { "A", "B", "C" });
        listView1.Items.Add(lvi);
        lvi=new ListViewItem(new string[] { "D", "E", "F" });
        listView1.Items.Add(lvi);
        lvi=new ListViewItem(new string[] { "G", "H", "I" });
        listView1.Items.Add(lvi);
    }
}
结果的屏幕截图如下所示


我收到错误:“System.Windows.Controls.ListViewItem”不包含接受“1”参数的构造函数。“我正在使用WPF。”。也许我忘记具体说明了。我希望你的解决方案能奏效。这会让事情变得更简单。你能更新图片链接吗?它现在死了。这个答案只对你有用。用新的屏幕截图更新了答案。这仅在编译时知道列数时才起作用。我还没有找到一个解决方案来添加一个字符串数组,该数组的计数在runtimeHey@Rajiv时是已知的——您可以在您的代码中以编程方式执行此操作,但我认为您不能在XAML中以声明方式执行此操作。
myListView.Items.Add(new { Col1 = "test1", Col2 = "Test2", Col3="test3"});
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        listView1.View=View.Details;
        //Set Columns
        listView1.Columns.Add("Col1");
        listView1.Columns.Add("Col2");
        listView1.Columns.Add("Col3");
        //Fill Rows
        ListViewItem lvi;
        lvi=new ListViewItem(new string[] { "A", "B", "C" });
        listView1.Items.Add(lvi);
        lvi=new ListViewItem(new string[] { "D", "E", "F" });
        listView1.Items.Add(lvi);
        lvi=new ListViewItem(new string[] { "G", "H", "I" });
        listView1.Items.Add(lvi);
    }
}