1

読み取り専用として宣言したいプロパティがある場合がいくつかありますが、[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を表示する方法はありますか?

4

2 に答える 2

1

ええ、私は以前に同じ問題に遭遇しましたが、管理しようとしませんでした。表示属性と、読み取り専用属性は封印されており、継承することはできません。それらをラップして別の属性を作成することはできますが、データフォームにはこの属性が含まれていません。

たぶん、 ReadOnlyTemplateでさまざまなことができます

        <dataFormToolkit:DataForm.ReadOnlyTemplate>
          <DataTemplate>
              <Grid>                
            <dataFormToolkit:DataField Label="{Binding ReadOnlyLabel,
                Converter=ReadOnlyOrNotConverter}" >
                <TextBox Text="{Binding Path=ReadOnlyValueEtc, Mode=TwoWay}" />
            </dataFormToolkit:DataField>

助けてくれることを願っています

よろしく!

于 2012-10-17T14:57:26.940 に答える
1
[Display(Order = 6, Name = "CountryLabel", Description = "CountryDescription",
ResourceType = typeof(EntityDataStrings))]

EntityDataStringsと の値を含むリソース ファイルはどこに"CountryLabel"ありますか"CountryDescription"

于 2010-11-04T15:16:43.047 に答える