如何避免在属性集上重新加载

时间:2013-09-04 09:31:58

标签: c#-4.0 custom-controls

public bool ShowButton
    {
        get
        {
            return _ShowButton;
        }
        set
        {
            _ShowButton = value;
            ReloadGrid();
        }
    }


    public bool ShowText
    {
       get
        {
            return _ShowText;
        }
        set
        {
            _ShowText = value;
            ReloadGrid();
        }
    }


    private void ReloadGrid()
    {
         Gridview.Data ......
    }

当我设置这两个特性时,我需要调用ReloadGrid。但我的要求是,如果我分配了2个属性,ReloadGrid应该只调用一次它现在发生两次。怎么避免这个?

1 个答案:

答案 0 :(得分:0)

  

如何避免这种情况?

不在属性的setter中调用ReloadGrid

public bool ShowButton { get; set; }
public bool ShowText { get; set; }

您必须手动调用它:

ShowButton = true;
ShowText = false;
ReloadGrid();

另一种选择更难。如果已经加载了bool变量,则需要存储该变量,并且必须在需要刷新数据的事件中将其设置为false。然后,您可以在ReloadGrid

中检查此变量
private bool GridNeedsReload { get; set; }
private void ReloadGrid()
{
    if(GridNeedsReload)
    {
        Gridview.Data ......
    }
}