WPF ListView — как добавлять элементы программно?

Даже если я знаю, что это не идеально, мне нужно программно заполнить 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; }
}

Элементы добавляются (я вижу строки), но я не вижу никакого контента.

Кто-нибудь знает?

Любая помощь приветствуется!


person JohnIdol    schedule 20.08.2009    source источник


Ответы (1)


Он работает, меняя код на:

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

Теперь это выглядит очевидным, но… поди разберись!

person JohnIdol    schedule 20.08.2009
comment
эй, чувак, пожалуйста - рад, что это также помогло кому-то еще :) - person JohnIdol; 16.02.2011
comment
Вы также знаете, как решить ту же проблему, имея общий список, который может принимать разные объекты с разными свойствами? - person Markus; 22.02.2012
comment
Ух ты, еще один поклонник Перси ИЛИ Перси умеет программировать! :) в любом случае, спасибо @RobinVanPersi - person Junaid Qadir Shekhanzai; 23.07.2014