簡體   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