簡體   English   中英

獲取/設置私有靜態集合?

[英]Get/Set for a Private Static Collection?

我已經定義了一個具有以下屬性的類:

 private ObservableCollection<Job> allJobs;

訪問定義如下:

    public ObservableCollection<Job> AllJobs
    {
        get
        {
            return this.allJobs;
        }
        set
        {
            this.allJobs = value;
        }
    }

當我將整個ObservableCollection分配給屬性時,get set工作正常,該set可以很好地檢索它。 但為什么我丟失了通常允許我“添加”的所有方法(即將1個作業添加到集合中)?

目前我不得不創建一個臨時集合來填充然后分配給allJobs屬性,我不應該這樣做。

有任何想法嗎??

“失去的方法”是什么意思? 你試過AllJobs.Add()嗎? 以下代碼適用於我:

void Main()
{
    AllJobs = new ObservableCollection<Job>();
    AllJobs.Add(new Job());
}

public class Job { }

private ObservableCollection<Job> allJobs;

public ObservableCollection<Job> AllJobs
{
    get
    {
        return this.allJobs;
    }
    set
    {
        this.allJobs = value;
    }
}

編輯:

根據你的評論我修改了我的代碼如下,但一切仍然適用於我,我注意到你沒有看到你在任何地方初始化allJobs集合。

void Main()
{
    PresentationManager.Instance.AllJobs.Add(new Job());
}

public class Job { }

sealed class PresentationManager 
{ 
    public static readonly PresentationManager Instance = new PresentationManager(); 

    private PresentationManager()
    {
        allJobs = new ObservableCollection<Job>();
    }

    private ObservableCollection<Job> allJobs; 
    public ObservableCollection<Job> AllJobs 
    { 
        get { return this.allJobs; } 
        set { this.allJobs = value; } 
    } 
}

通常,您不希望為此類屬性設置setter,因為在使用setter時,您將丟失綁定到ObservableCollection的所有事件。

public ObservableCollection<Job> AllJobs { get; private set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM