none
将一个Dictionary<string, string>绑定到DataGridView中 RRS feed

答案

  • 你好!

        直接是无法绑定的,可以用BindingSource中转一下:

    System.Windows.Forms.BindingSource bs = new System.Windows.Forms.BindingSource( this .components); bs.DataSource = dic.Values;

    this .dataGridView1.DataSource = bs;


    周雪峰
    • 已标记为答案 络绎 2010年4月27日 3:31
    2010年4月26日 11:44
    版主
  • 多谢雪峰兄,不过你所提供的方式依然无法解决问题。因为这样仅仅绑定的是dic.Values,而dic.Keys没法被绑定到。我修改了数据结构,定义了一个

        public struct SHOWFILES
        {
         private string name; // 需要显示的文件名
          private double weight;// 需要显示的权值
    
          #region Struct属性的set和get操作
          public string Name
          {
            get 
            { 
              return name;
            }
            set
            {
              name = value;
            }
          }
    
          public double Weight
          {
            get
            {
              return weight;
            }
            set
            {
              weight = value;
            }
          }
    
          #endregion
        };
    再定义了一个List<SHOWFILES>对象。DataGridView是支持IList接口的,算是换种方式解决问题吧。
    • 已标记为答案 络绎 2010年4月27日 3:30
    2010年4月27日 3:30

全部回复

  • 你好!

        直接是无法绑定的,可以用BindingSource中转一下:

    System.Windows.Forms.BindingSource bs = new System.Windows.Forms.BindingSource( this .components); bs.DataSource = dic.Values;

    this .dataGridView1.DataSource = bs;


    周雪峰
    • 已标记为答案 络绎 2010年4月27日 3:31
    2010年4月26日 11:44
    版主
  • 多谢雪峰兄,不过你所提供的方式依然无法解决问题。因为这样仅仅绑定的是dic.Values,而dic.Keys没法被绑定到。我修改了数据结构,定义了一个

        public struct SHOWFILES
        {
         private string name; // 需要显示的文件名
          private double weight;// 需要显示的权值
    
          #region Struct属性的set和get操作
          public string Name
          {
            get 
            { 
              return name;
            }
            set
            {
              name = value;
            }
          }
    
          public double Weight
          {
            get
            {
              return weight;
            }
            set
            {
              weight = value;
            }
          }
    
          #endregion
        };
    再定义了一个List<SHOWFILES>对象。DataGridView是支持IList接口的,算是换种方式解决问题吧。
    • 已标记为答案 络绎 2010年4月27日 3:30
    2010年4月27日 3:30
  • 恩!我也没有想到太好的办法,Dictionary不支持直接绑定!
    周雪峰
    2010年4月27日 8:53
    版主