15

IDフィールドを読み取り専用にしようとしています。これは DB の Identity フィールドであるため、ユーザーは設定しません。しかし、彼らはそれを見たいと思っています。DataFormに割り当てられたときに、その値を編集できるようにすると、以下のように何が欠けていますか。

public class StatusChoice : BindableBase
{
    private int id;

    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Editable(false,AllowInitialValue = false)]
    public int ID
    {
        get { return id; }
        set
        {
            id = value;
            OnPropertyChanged();
        }
    }
}
4

2 に答える 2

23

プロパティを ReadOnly 属性でマークします。

[ReadOnly(true)]
public decimal BodyMassIndex { get; private set; }

詳細については、以下のリンクに従ってください 。asp.net mvc 3 の DataAnnotations の動作は変更されましたか?

于 2013-05-09T05:38:45.767 に答える
7

状況に応じて、一般的に 2 つのオプションがあります。

[Editable(false)] or [ReadOnly(true)]

以下はMSDNからの説明です

System.ComponentModel.ReadOnlyAttribute

https://msdn.microsoft.com/en-us/library/system.componentmodel.readonlyattribute%28v=vs.110%29.aspx

この属性がバインドされるプロパティが読み取り専用か読み取り/書き込みかを指定します。true に設定された ReadOnlyAttribute でマークされているメンバー、または Set メソッドを持たないメンバーは変更できません。この属性を持たないメンバー、または ReadOnlyAttribute が false に設定されているメンバーは、読み取り/書き込み可能であり、変更できます。デフォルトはいいえです。

System.ComponentModel.DataAnnotations.EditableAttribute

https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.editableattribute%28v=vs.110%29.aspx

データ フィールドが編集可能かどうかを示します。

データ フィールドに EditableAttribute 属性が存在することは、ユーザーがフィールドの値を変更できるかどうかを示します。このクラスは、フィールドが編集可能であることを強制も保証もしません。基になるデータ ストアでは、この属性の存在に関係なく、フィールドの変更が許可される場合があります。

于 2016-05-20T08:21:35.417 に答える