none
屬性集合問題 RRS feed

所有回覆

  • 如果只是要在Control裡面可以存取自訂的CollectionBase Class, 可以透過繼承的方式將該物件加到屬性中, 或是直接貼到Tag這個屬性中.

     

    但是如果這個Control是客製化的, 你也希望所有的屬性能包裝起來, 使其只能透過Key存取屬性資料的話, 建議若無特殊考量不要這樣做, 沒有文件的話維護的會很痛苦. 這種狀況可以把CollectionBase Class設成private, 透過indexer存取.

    2007年6月13日 上午 09:36
  • 不好意思我是初學者對於你說的有點不大懂耶.....你說把CollectionBase設成private,是像在寫好一個集合類別,再用程式碼使用Add方法去加入集合類別中的內容嗎?其實我是想做類似DataGrid的TableStyles可以使用集合編輯器去加入集合類別的內容,而不用程式碼去key入,但我試了沒辦法儲存集合編輯器的內容......要如何做呢?

    thanks

    2007年6月13日 下午 01:58
  • 那我搞錯你的意思了, 你是參考這一篇實作的嗎?

    http://msdn2.microsoft.com/en-us/library/aa302334.aspx

    我之前是有做過類似的, 再複雜的Class都可存起來的. 可以的話把Code列出來看看可能會比較快.

    2007年6月13日 下午 04:02
  • 若以msdn作參考大概是......定義一個Person,再將之加入Persons集合類別中......

     

     public class Person {
          private string firstName = "";
          private string lastName = "";
          private int    age = 0;
      
          public int Age {
             get {
                return age;
             }
             set {
                age = value;
             }
          }
         
          public string FirstName {
             get {
                return firstName;
             }
             set {
                this.firstName = value;
             }
          }

          public string LastName {
             get {
                return lastName;
             }
             set {
                this.lastName = value;
             }
          }     
       }

     

    //集合類別

    public class Persons:CollectionBase

    {

         public void Add(Person o)

         {

                IList.Add(o);

         }

     

      public void Remove(Person o)

         {

                IList.Remove(o);

         }

     

      public Person this[int index]

      {

               get{ return (Person)IList[index];}

               set{IList[index]=value;}

       }

    }

     

     

    //然後再像加入屬性一樣把集合類別加入控制項當屬性

    Persons pp;

     

    public Persons Person_Collection

    {

    get{return pp;}

    set{pp=value;}

    }

     

    //這樣對嗎?......thanks

    2007年6月14日 下午 03:46