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)
我只列出了实际的绑定,我不认为布局信息太重要了,但是如果我在这个假设中错了,请告诉我.
您为私有字段分配值
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)