読み取り専用として宣言したいプロパティがある場合がいくつかありますが、[Display(Description = "")]属性を使用してその計算/設定方法についても説明します。可能であれば、データフォーム自体でオーバーライドするのではなく、メタデータでこれを実行したいと思います。
次に例を示します。
[Display(Description = "Total number of travel hours, calculated as total hrs worked - actual working hrs this month")]
public decimal TravelHours
{
get
{
return this.TotalHrsWorked - this.ActualWorkedHours;
}
}
DataFormとDataFieldでこのプロパティにバインドすると、説明がDescriptionViewerとして表示されません。
[ReadOnly]属性を設定すると、DescriptionViewerが非表示になり、データフォームxamlでDescriptionViewerVisibility = Visibleを設定しても、変更されないようです。また、計算されたプロパティ(セッターなし)には、デフォルトでこの属性が適用されているようです。これらは私がdescriptionviewerに本当に見せたいものなので、それはちょっと面倒です。
私がこれまでに見つけた唯一の方法は、プロパティを読み取り専用ではなく、ダミーのセッター(計算されたプロパティ用)を追加することです。それは応急修理のようです。
読み取り専用プロパティでデータフォーム/データフィールドdescriptionviewerを表示する方法はありますか?