none
关于 winform DataBindings 无法更新的问题 RRS feed

  • 问题

  • 自定义控件继承panel,有个自定义属性 DataSource

    public class TableClassCollection : Panel
    {
            private List<TableClassInfo> _dataSource;
            /// <summary>
            /// 获取或设置控件数据源
            /// </summary>
            public List<TableClassInfo> DataSource
            {
                get { return _dataSource; }
                set 
                { 
                    _dataSource = value; 
                    this.DataBind();
                }
            } 
    
            private void DataBind(){
              //绑定数据...........................
            }
    
           // 其他代码...............................................
    }
    

    另外还有一个类: Components.Context,里面有个属性 List<TableClassInfo> TableClassList{ get;set; }

    我在 Program 里面定义了 static Components.Context Context;

    然后在MainForm 里面使用 tableClass.DataBindings.Add("DataSource", Program.Context, "TableClassList"); 这里tableClass是自定义控件(TableClassCollection )

    当单击一个按钮的时候我对Program.Context添加了一条记录

    Program.Context.TableClassList.Add(new TableClassInfo() { Id = 100, Name = "2222", Sort = 122 });

    但是tableClass中并没有反应出来,我应该怎么做才可以实现更新 Program.Context 数据后同时能更新控件的显示??

     

    2012年1月16日 9:52

答案

  • dear

    1.请问你的entity有实作INotifyPropertyChanged界面吗?请参考

    http://www.dotblogs.com.tw/yc421206/archive/2011/04/19/23072.aspx

    2.把List<>换成,BindingList<>试试

     


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2012年1月17日 6:18