WPF ListView - 如何以编程方式添加项目?

27

即使我知道这不是最理想的方式,但出于某些原因,我需要通过编程方式填充一个listView。

我在标记中声明了我的列:

            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=Name}"/>
                    <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=Value}"/>
                </GridView>
            </ListView.View>

我正在使用以下代码添加项目(显然是在循环中):

            MyData data = getDataItem(index); //< -- whatever
            ListViewItem item = new ListViewItem();
            item.DataContext = data;
            this.myListView.Items.Add(item);

假设MyData已定义为:

public class MyData
{
    public string Name { get; set; }
    public string Value { get; set; }
}

我可以看到行正在被添加,但是我看不到任何内容。

有人有线索吗?

任何帮助都将不胜感激!

2个回答

35

将代码更改为以下内容即可正常工作:

        MyData data = getDataItem(index); //< -- whatever
        this.myListView.Items.Add(data);

现在看起来很明显,但是...想象一下!


你是否也知道如何解决相同的问题,即拥有一个通用列表,可以接受不同对象和不同属性的情况? - Markus
哇,这里又有一个Persie的粉丝!或者说Persie会编程!不管怎样,感谢@RobinVanPersi。 - Junaid Qadir Shekhanzai

-1
List<MyData> yourList= new List<MyData>();
//adding elements to yourList (...)


foreach (MyData m in yourList)
{
    myListView.Items.Add(m);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接