ListBox类:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.listbox.aspx它有三个属性,我简直不懂,MSDN的解释也很生硬DisplayMember 属性:获取或设置要为此 ListControl 显示的属性。
SelectedValue 属性:获取或设置由 ValueMember 属性指定的成员属性的值。
ValueMember 属性:获取或设置一个属性,该属性将用作 ListControl 中的项的实际值。
简直不懂,哪位朋友能用通俗易懂的语言解释一下啊!
SelectedValue 属性:获取或设置由 ValueMember 属性指定的成员属性的值。
ValueMember 属性:获取或设置一个属性,该属性将用作 ListControl 中的项的实际值。
简直不懂,哪位朋友能用通俗易懂的语言解释一下啊!
当你把一个对象绑定给ListBox,那么那些出现在条目上的文字来自这个对象的某个属性,它的名字。比如name属性、text属性啦SelectedValue 属性:获取或设置由 ValueMember 属性指定的成员属性的值。
选中的那一项对应的对象的ValueMember代表的那个属性的值。ValueMember 属性:获取或设置一个属性,该属性将用作 ListControl 中的项的实际值。
类似DisplayMember,你可以保存一个数值,这个值对程序有用,但是不出现在界面上,比如你可以绑定id。
{
public int UserID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string EMail { get; set; }
public string Phone { get; set; }
public DateTime DayOfBirth { get; set; }
}
比如有这么一个类。我现在往ListBox里面添加它:ListBox1.Items.Add(new User() { UserID = 1, Name = "A", Address = ... });
ListBox1.Items.Add(new User() { UserID = 2, Name = "B", Address = ... });
ListBox1.Items.Add(new User() { UserID = 3, Name = "C", Address = ... });
那么怎么知道ListBox1 中显示什么呢?
如果DisplayMember = "UserID"
ListBox1显示 1 2 3
如果DisplayMember = "Name"
ListBox1显示 A B C
listBox1.DisplayMember = "UserID";
listBox1.ValueMember = "Name";添加之后,确实在ListBox中显示的是UserID的值,ValueMember属性是项的实际的值。然后,在下面的事件中
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
textBox1.Text = listBox1.SelectedValue.ToString(); //未将对象引用设置到对象的实例
}
}
为什么总是报错呢?----未将对象引用设置到对象的实例
{
public Form1()
{
InitializeComponent();
listBox1.DisplayMember = "UserID";
listBox1.ValueMember = "Name";
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add(new Class1() { UserID = 1, Name = "A" });
listBox1.Items.Add(new Class1() { UserID = 2, Name = "B" });
listBox1.Items.Add(new Class1() { UserID = 3, Name = "C" });
}
private void listBox1_SelectedValueChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
textBox1.Text = listBox1.SelectedValue.ToString(); //未将对象引用设置到对象的实例
}
}
}
class Class1
{
public int UserID { get; set; }
public string Name { get; set; }
}为什么会报错呢?