Listview显示"空"行

spu*_*1r3 0 c# data-binding wpf listview

我花了几天时间没有自己解决这个问题,这使我相信我不理解xaml和代码隐藏的基本内容.我试图使用WPF和c#在ListView中显示来自ObservableCollection的数据.

当我开始调试时,窗口显示listview,包含网格和标题.可点击的行等于应该存在的项目数,但这些项目显示为空白或空白.我正在研究一个不完整的教程,试着通过这个来学习我的方法,代码如下:

MainWindow.xaml.cs:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();           
    }   
}
Run Code Online (Sandbox Code Playgroud)

NameList.cs:

class NameList : ObservableCollection<PersonName>
{
    public NameList()
        : base()
    {
        Add(new PersonName("Willa", "Cather")); //enumerated? (firstName, lastName)
        Add(new PersonName("Isak", "Dinesen"));
        Add(new PersonName("Victor", "Hugo"));
        Add(new PersonName("Jules", "Verne"));
    }
}
Run Code Online (Sandbox Code Playgroud)

PersonName.cs:

class PersonName
{
    private string firstname;
    private string lastname;

    public PersonName(string first, string last)
    {
        this.firstname = first;
        this.lastname = last;
    }

    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我会包含xaml,但我还没有弄清楚如何在这里的问题中做到这一点,所以我会尽可能拼出来:

ListView ItemsSource=""{Binding Source={StaticResource NameListData}}"

GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}"

GridViewColumn DisplayMemberBinding="{Binding Path=LastName}"
Run Code Online (Sandbox Code Playgroud)

我只列出了实际的绑定,我不认为布局信息太重要了,但是如果我在这个假设中错了,请告诉我.

LPL*_*LPL 5

您为私有字段分配值

this.firstname
Run Code Online (Sandbox Code Playgroud)

但绑定到属性

public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)

这应该工作

public PersonName(string first, string last)
{
    this.Firstname = first;
    this.Lastname = last;
}
Run Code Online (Sandbox Code Playgroud)

  • @ spugm1r3你应该把它标记为'答案',如果你认为它把你带到了正确的方向...... (2认同)