【发布时间】:2013-09-15 09:52:32
【问题描述】:
我有一个名为 listbox1 的列表框将绑定到这样的列表:
ValueVM word1 = new ValueVM { Id = 1, Name = "AAA" };
ValueVM word2 = new ValueVM { Id = 2, Name = "XBB" };
ValueVM word3 = new ValueVM { Id = 3, Name = "ACC" };
ValueVM word4 = new ValueVM { Id = 4, Name = "ACB" };
ValueVM word5 = new ValueVM { Id = 5, Name = "OTD" };
ValueVM word6 = new ValueVM { Id = 6, Name = "FDD" };
var li = new List<ValueVM>() { word1, word2, word3, word4, word5, word6 };
listBox1.DataSource = li.OrderBy(l=>l.Name).ToList();
listBox1.DisplayMember = "Name";
listBox1.ValueMember = "Id";
我想在这个列表框中选择一项,假设我想要Id=2;
int myID = 2;
//Idont know what the selected index will be but I need the selected value to be set
// I tried to set listBox1.SelectedValue=myId.ToString();
//but still returning null
listBox1.SelectedValue = myID;
如 MSDN 中所述:
获取或设置由 ValueMember 属性指定的成员属性的值。 (继承自 ListControl。)
我的问题是选择值从值成员获取值但没有设置值? 有任何想法吗?
【问题讨论】:
-
Name是字段还是属性?字段不支持数据绑定 -
我使用类 ValueVm 像这样
class ValueVM { public int Id { get; set; } public string Name { get; set; } }我确定它是财产 :( -
@Eddy4v 您的代码事件无法编译,
li.OrderBy(l=>l.Name)应附加ToList()。我还是没有得到你想要的?运行您的代码将选择XBB(带有Id=2),这不是您想要的吗? -
@KingKing 编译但抛出运行时异常。你的意思是一样的吗?
-
@SriramSakthivel 啊,这就是我的意思。