关于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 控件中的行之间移动。注意是否需要您可以编辑该对象的值。
 
                    
                
                
            
        
浙公网安备 33010602011771号