0

コードに 3 番目の側面を導入したため、値の取得と設定に問題があります。

以前は、レコードを取得/設定するためにこれを行っていました:

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ます。DBにnullとして保存されています。

助けてくれてありがとう。

4

2 に答える 2

0

結局、その部分を取り除き、レコードだけに固執しました。これにより、ビューモデルでgetandを実行できるようになりset、うまく機能しました (そして混乱も少なくなりました)。

于 2013-09-05T15:06:54.117 に答える