2013-05-09 8 views
10

IDフィールドを読み取り専用にしようとしています。 DB内のIDフィールドであるため、ユーザーは設定しません。しかし、彼らはそれを見たいと思っています。以下のように私が紛失しているものは、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(); 
     } 
    } 
} 

答えて

5

のためにあなたが状況に基づいて、一般的に2つのオプションがあり

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

。以下は

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

MSDN

System.ComponentModel.ReadOnlyAttribute 

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

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

System.ComponentModel.DataAnnotations.EditableAttribute 
ある

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

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

データフィールドにEditableAttribute属性があることは、ユーザーがフィールドの値を変更できる必要があるかどうかを示します。 このクラスは、フィールドが編集可能であることを強制も保証しません。基礎となるデータストアでは、この属性の有無にかかわらずフィールドを変更できます。

関連する問題