2013-08-29 105 views
0

我在獲取和設置值時遇到問題,因爲我在代碼中引入了第三方面。試圖獲取/設置記錄

以前我會做這個拿到/在記錄設置:

public virtual string MyString { get; set;} 

,然後在我的部分:

public string MyString 
{ 
    get { return Record.MyString; } 
    set { Record.MyString = value; } 
} 

和NHibernate會保存在DB我的價值觀(顯然我的其他爲簡潔起見,此處不提供代碼)。

現在我正在嘗試做一個帶有列表的複選框。我有這樣一個複選框:。

public class MyPart : ContentPart<MyPartRecord> 
{ 
    public MyPart() 
    { 
     MyList = Enum.GetValues(typeof(MyEnum)) 
      .Cast<MyEnum>().Select(x => 
     { 
      return new SelectListItem { Text = x.ToString().ToUpper(), 
       Value = ((int)x).ToString() }; 
     }).ToList(); 
    } 

    public IList<SelectListItem> MyList { get; set; } 
    private string myCheckBox; 

    // Record class contains the following commented code: 
    // public virtual string MyCheckBox { get; set;} 

    // Trying to do this now here in MyPart class: 
    public string MyCheckBox 
    { 
     get 
     { 
      if (!string.IsNullOrEmpty(myCheckBox)) 
       return myCheckBox; 
      // Tried the following commented code to get value: 
      // Record.MyCheckBox = myCheckBox; 
      return string.Join(",", MyList.Where(x => x.Selected) 
       .Select(x => x.Value).ToArray()); 
     } 
     set 
     { 
      myCheckBox = value; 
      // Tried the following commented code to set value: 
      // Record.MyCheckBox = myCheckBox; 
     } 
    } 
} 

我只是不知道如何在這種情況下,分配值(獲取/設置myCheckBoxMyCheckBox它被保存在數據庫中爲空

謝謝在

+0

嘗試'Record.MyCheckBox =值' –

+0

@DStanley我在幾天前試過:) – REMESQ

回答

0

彼時我剛剛擺脫部分,並只記錄堅持 - 這讓我做getset在視圖模型,制定出更好的(並且是容易混淆)。

0

事先的任何幫助。在我看來,你會躲在基地virtual實施MyCheckBox

我覺得不是你寧願override基地:

public override String MyCheckBox 
{ 
    get 
    { 
     if (!string.IsNullOrEmpty(myCheckBox)) 
      return myCheckBox; 
     // Tried the following commented code to get value: 
     // Record.MyCheckBox = myCheckBox; 
     return string.Join(",", MyList.Where(x => x.Selected) 
      .Select(x => x.Value).ToArray()); 
    } 
    set 
    { 
     myCheckBox = value; 
     // Tried the following commented code to set value: 
     // Record.MyCheckBox = myCheckBox; 
    } 
} 

從而成爲變量而不是混淆它呢?

+0

這個覆蓋將不起作用,因爲'公共虛擬字符串MyCheckBox {get;組; }'在單獨的記錄類中。這是一個部分課程。 – REMESQ

+0

好吧,現在建議使用'Record.MyCheckBox'是有道理的。我沒有抓住那部分。所以某處有'Part'類的實例。那麼,什麼是「記錄」? 「Part」類是否應該引用可用於執行諸如「myRecord.MyCheckBox = myCheckBox」之類的「Record」對象?將本地成員分配給實例成員? – DonBoitnott

+0

我輸入錯誤。它應該是'MyPartyRecord',領帶是公共類My Part:ContentPart {...}'。我在開始時展示了它是如何正常完成的(哪些工作正常),它只是將'myCheckBox'變成'MyCheckBox',這讓我難以置信。 – REMESQ