我在winform中定义了一个控件,控件包含lab,listView,combox等控件,我想通过cs页根据不同的情况设置不同的lab.text属性,listView和combox同样进行动态绑定。
   不知道如何做,请高手指点!

解决方案 »

  1.   

    public class MyControl:UserControl
    {
        public string LabelText
        {
             get{return this.label1.Text;}
             set{this.label1.Text=value;}
        }    public void BindListView(object suorce)
        {
             this.listview1.datasource=source;
        }
        或
         public object ListViewDataSource
        {
             set{this.listview1.datasource=value;}
        }
    }
      

  2.   


    可以设置一个DataMode
    public enum DataMode
    {
       ModeOne = 1,
       ModeTwo = 2,//.......具体的自动定义
    }public class Ctrl : UserControl
    {
       private DataMode _mode = DataMode.ModeOne;
       //省略一些自动生成的代码
       public DataMode Mode
       {
           set
           {
             _mode = value;
             ChangView();
           }
       }
       private void ChangeView()
       {
          switch(_mode)
          {
             DataMode.ModeOne:
                this.lab1 = "这是第一个模式"
                this.comb1.Items.Clear();
                this.comb1.Items.Add(//1模式下需求的项);
                //其他的要设置的依次设置,如果各个模式基本相同,可将这些设置提取为一个函数,少敲好多代码
                  break;
          }
       }
    }
    都是手动敲得,只是一个大概的思路,也未必能符合你的需求
      

  3.   

    谢谢大家!问题解决了(下午的灵感)。关键是将用户控件中控件(lable、combox、listview等)的属性(如:text、value,items.add()等)设置放到用户控件的事件响应中实现。
        先前我将它们放在控件的构造函数中,则无法实现问题中的功能。
        共同学习!谢谢!