关于ListBox绑定到自定义对象
总结关键点:
1. ListBox的TextMember与ValueMember必需是属性
2.绑定对象必需继承IList
3. 绑定辅助用这个 private CurrencyManager currencyManager=null;
绑定方法用这个currencyManager = (CurrencyManager)dataGrid1.BindingContext[al];
4.一定要设DataSource属性
5.对象内容发生变化后,要及时刷新 currencyManager.Refresh();
转个链接: http://support.microsoft.com/kb/316303/zh-cn
分步示例
- 在 Visual C#.net 或 Visual C# 2005年中创建新的 Windows 应用程序项目。默认情况下创建 Form1。
- 将类添加到项目中。
- 用下列替换代码中 Class1.cs:
public class guitar { private string make; private string model; private short year; public guitar() { } public guitar(string Make, string Model, short Year) { make=Make; model=Model; year=Year; } public string Make { get { return make; } set { make = value; } } public string Model { get { return model; } set { model = value; } } public short Year { get { return year; } set { year = value; } } }
- 关闭 Class1.cs 代码窗口,然后切换到窗体设计器。
- 向 Form1 中添加一个 DataGrid 控件。调整大小以适应三个行和四个列将 DataGrid 控件。
- 将四个 按钮 控件添加到 Form1,然后横向排列按钮。
- 下一处 更改 Button1 文本 属性。
- 更改到 前一节 的 Button2 文本 属性。
- 更改为 第一个 Button3 的 Text 属性。
- 上次 更改 Button4 的 Text 属性。
- 下面的代码添加到 Form1 类:
private ArrayList al = new ArrayList(); private CurrencyManager currencyManager=null;
- 切换到窗体设计器,用鼠标右键单击该的表单,然后单击 属性。
- 单击 事件 图标,然后双击 Load 事件将 Form1_Load 事件添加到您的代码。
- 将以下代码粘贴到 Form1_Load 事件中:
al.Add (new guitar("Gibson", "Les Paul", 1958)); al.Add (new guitar("Fender", "Jazz Bass", 1964)); al.Add (new guitar("Guild", "Bluesbird", 1971)); currencyManager = (CurrencyManager)dataGrid1.BindingContext[al]; dataGrid1.DataSource=al;
- 若要查看窗体设计器的开关。
- 双击 $ 下一步,然后将下面的代码添加到 button1_Click 事件:
currencyManager.Position++;
- 双击 上一步 中,然后将下面的代码添加到 button2_Click 事件:
currencyManager.Position--;
- 双击 第一个,然后将下面的代码添加到 button3_Click 事件:
currencyManager.Position = 0;
- 双击 最近,然后将下面的代码添加到 button4_Click 事件:
currencyManager.Position = al.Count - 1;
- 生成并运行该项目。
- 单击命令按钮以在 DataGrid 控件中的行之间移动。注意是否需要您可以编辑该对象的值。