簡體   English   中英

在(整體)部分使用 ref class

[英]Using ref in (whole) partial class

我對在部分 class 中使用引用的“正確方法”有些困惑。基本上我寫了一個 WPF 程序,它有不同的菜單。 每個菜單都有相同的視圖模型和一些與數據相關的 object class。在我的例子中,我將 Object 稱為“DataModel”,我想在每個菜單中用作參考。 當我將我的數據模型從 static object 切換到每個菜單所需的實例作為輸入參考時,我剛剛遇到了一個問題。 (雖然我仍然想為每個菜單使用一個相同的 DataModel ...)但是在“較低”方法中它說 _dm 根本沒有定義。

代碼簡要總結為:

 public partial class FormatWPF : UserControl
    {            
        public FormatWPF(DataModel _dm)
        {
            InitializeComponent();
            if (this.DataContext == null)
            {
                this.DataContext = _dm.g1.MVM;
            }                
        }


        // here come several Methods with which i want to calculate stuff and "manipulate" the DataModel 
        private void Steinformat_berechnen()
        { 
           _dm.g1.FormatNr = _dm.g1.FormatAnzahl + 1;                                     
        }
        //....
    }

簡而言之,我想對整個部分 class 中的所有其他方法使用 class object 的構造函數中作為輸入引用給出的 _dm(是否真的有必要為每個方法定義此引用?)使用 DataModel 作為static 對我來說似乎很容易....但基本上它是“錯誤的”?

預先感謝您提供有關以正確方式進行操作的一些幫助和提示。

也許我有點不清楚。 問題是我只想為所有菜單和我的整個項目使用一個數據模型。 盡管如此,我不想把它變成 static(在我的代碼的后面部分出現了一些其他的混亂......)所以基本上我必須將 DataModel 作為所有菜單的參考......

關於您的回答:我知道可以定義另一個

private Datamodel _dm; 

在命名空間..

但我不太確定:

1)我不會通過為每個菜單定義另一個數據模型來獲得一些額外的“內存”使用嗎? 因為它有點“大”

2)當我現在計算 _dm 中的數據時,它會因“完整”程序而改變嗎? 就像前者 static Model 一樣?

我希望讓 DataModel static 不是我問題的“正確答案”,因為我只是想以某種方式擺脫這個......嗯

最好的問候 Knally

是的,如果DataModel是針對每個實例的, static是非常錯誤的( static意味着所有實例都將使用相同的值); 但它仍然可以是一個實例字段:

private DataModel _dm;
public FormatWPF(DataModel dataModel)
{
    _dm = dataModel;
    // the rest of your constructor code here
}

現在您可以在所有其他實例方法中使用_dm ,一切都應該沒問題。 如果您需要_dm.g1 ,您或許可以將該值存儲為字段,而不是 model 本身。

暫無
暫無

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

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