RIA услуги/DataForm: Как да използвате атрибутите ReadOnly & Description заедно

Имам няколко случая, в които имам свойство, което искам да декларирам само за четене, но също така да дам някакво обяснение как се изчислява/задава с помощта на атрибута [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;
        }
    }

Това няма да покаже описанието като DescriptionViewer, когато се свържа с това свойство в DataForm & DataField.

Изглежда, че когато задам атрибута [ReadOnly], той скрива DescriptionViewer и дори настройката DescriptionViewerVisibility=Visible във формата за данни xaml все още не го променя. Освен това всички изчислени свойства (без настройка) изглежда имат този атрибут, който се прилага по подразбиране. Донякъде е досадно, защото това са тези, за които наистина искам да покажа инструмента за преглед на описания.

Единственият начин да го заобиколя, който намерих досега, е да направя свойството да не е само за четене и да добавя фиктивен сетер (за изчислени свойства). Това изглежда като глупост.

Има ли някакъв начин да се покаже инструментът за преглед на описание на формуляр за данни/поле с данни на свойства само за четене?


person Dale    schedule 20.06.2010    source източник


Отговори (2)


Да, срещнах същия проблем преди, но не се опитах да се справя. Display Attribute и , ReadOnly Attribute са запечатани и не можете да наследите от тях. Можете да ги обвиете и да създадете друг атрибут, но вашата форма за данни вече не съдържа този атрибут. Така че не можете...

Може би можете да правите различни неща в ReadOnlyTemplate

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

Надеждата помага,

За разбирането!

person Davut Gürbüz    schedule 17.10.2012

[Display(Order = 6, Name = "CountryLabel", Description = "CountryDescription",
ResourceType = typeof(EntityDataStrings))]

Където EntityDataStrings е файл с ресурси, съдържащ стойности за "CountryLabel" и "CountryDescription".

person Phil    schedule 04.11.2010