请教各位高手。我在利用反射方法给combobox控件赋值时候总是失败,是啥回事? 是不是不能使用
自定义的ilist对象作为combobox控件的数据源?换是DataTable对象时是可以的。请大家帮我看看。
代码如下:
public class clsListItem
{
private string myName;
private string myValue; public string ItemValue
{
get
{
return myValue;
} set
{
this.myValue = value;
}
} public string ItemName
{
get
{
return myName;
} set
{
this.myName = value;
} } public override string ToString()
{
return myName.ToString();
}
}using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using System.Reflection;
namespace tttt
{
public class
{
void test()
{
IList dtSource = new ArrayList();clsListItem item;
item = new clsListItem();
item.ItemName = "1";
item.ItemValue="1";
dtSource.Add(item);item = new clsListItem()
item.ItemName = "2";
item.ItemValue="2";
dtSource.Add(item);control.DataSource = dtSource;//control是一个combobox对象
control.DisplayMember = "ItemName";
control.ValueMember = "ItemValue";
Type controlType = control.GetType();
PropertyInfo controlProperty =controlType.GetProperty("SelectedValue", typeof(object));
controlProperty.SetValue(control, 1, null);
}
}
}
自定义的ilist对象作为combobox控件的数据源?换是DataTable对象时是可以的。请大家帮我看看。
代码如下:
public class clsListItem
{
private string myName;
private string myValue; public string ItemValue
{
get
{
return myValue;
} set
{
this.myValue = value;
}
} public string ItemName
{
get
{
return myName;
} set
{
this.myName = value;
} } public override string ToString()
{
return myName.ToString();
}
}using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using System.Reflection;
namespace tttt
{
public class
{
void test()
{
IList dtSource = new ArrayList();clsListItem item;
item = new clsListItem();
item.ItemName = "1";
item.ItemValue="1";
dtSource.Add(item);item = new clsListItem()
item.ItemName = "2";
item.ItemValue="2";
dtSource.Add(item);control.DataSource = dtSource;//control是一个combobox对象
control.DisplayMember = "ItemName";
control.ValueMember = "ItemValue";
Type controlType = control.GetType();
PropertyInfo controlProperty =controlType.GetProperty("SelectedValue", typeof(object));
controlProperty.SetValue(control, 1, null);
}
}
}
解决方案 »
- SOCKET通信 字节序小端排序问题
- 从一个listview选择项加到另一个listview中
- 画线的问题
- 处理其他事件的函数是什么?
- 在form2登录后才显示form1应该怎么做
- 在winform里面用MessageBox提示错误信息,在aspx里面要实现这种提示窗口,应该怎样做
- 在一个类里面操作一个窗体的问题
- 某一日期字段要选择这样的值, 如:0701-0706,0708,0710 , (表示07年1月到6月, 或者07年8月,或者07年10月) , 如何写SQL的函数来实现?
- 向数据库中写入数据的问题
- C#问题:关于 “枚举” 和 “转换字符” 有几句话不能理解,请教大家
- 谁能帮我解释一下迪杰斯塔拉算法?
- 不要鄙视哥,哥带你上火星看源代码。
item = new clsListItem();
item.ItemName = "1";
item.ItemValue="1";
dtSource.Add(item); clsListItem 中的item非IList 中的item
control.DisplayMember = "ItemName";
control.ValueMember = "ItemValue";
ItemName,ItemValue是什么?control不认识吧
如果是重写ilist没发现和ilist关联的地方啊?