繁体   English   中英

C#从事件更新Gridview列

[英]C# Updating Gridview columns from an event

我有一个Windows窗体,上面有一个GridView以及以下属性

如果在初始化表格上输入

myGridView1.Columns.Add("ColumnName", "ColumnHeaderText");

当表单加载时,我在GridView上看到该列,但是,如果我在ListChanged事件中键入相同的代码,我却看不到GridView上的列,为什么会这样?

private void _browseLayoutColumns_ListChanged(BrowseLayoutColumns item)
    {
        myGridView1.Columns.Add("ColumnName", "ColumnHeaderText");
    }

private MyList<BrowseLayoutColumns> _browseLayoutColumns = new MyList<BrowseLayoutColumns>();                                     
    public MyList<BrowseLayoutColumns> BrowseLayoutColumns
    {
        get 
        {
              return _browseLayoutColumns;
        }
        set
        {              
             if(value == null) return;                 
            _browseLayoutColumns = value;                                
        }            
    }

MyList和BrowseLayoutColumns实现如下:

public class BrowseLayoutColumns
{           
    #region Properties
    private string _columnName = string.Empty;        
    public string ColumnName
    {
        get => _columnName;
        set
        {
            if (null == value) return;
            _columnName = value;                
        }

    }

    private string _bindingField = string.Empty;
    public string BindingField
    {
        get => _bindingField;
        set
        {
            if (null == value) return;
            _bindingField = value;               
        }
    }       
    #endregion       
}

internal class MyList<T> : List<T> where T : class
{
    #region ListMethods
    public new void Add(T item)
    {
        base.Add(item);            
        ListChanged?.Invoke();
    }

    public new void Clear()
    {
        base.Clear();        
        ListChanged?.Invoke();
    }
    #endregion

    #region Events

    public event ListChangedEventHandler ListChanged;
    public delegate void ListChangedEventHandler();

    #endregion
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM