سؤال

لدي العديد من الحالات التي لديّ خاصية أريد أن أعلنها عن طريق القراءة ، ولكن أيضًا قدم بعض التفسير لكيفية حسابها/تعيينها باستخدام سمة [Display = "")]. أود أن أفعل ذلك في البيانات الوصفية ، إن أمكن ، بدلاً من تجاوزها في DataForm نفسها.

هذا مثال:

    [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 ، وحتى إعداد DescriptionViewerVibility = مرئي في DataForm لا يزال XAML لا يغيره. أيضًا ، يبدو أن أي خصائص محسوبة (بدون جهاز) قد فرضت هذه السمة افتراضيًا. إنه نوع من الإزعاج ، لأن هذه هي تلك التي أرغب حقًا في إظهار DescriptionViewer ل.

الطريقة الوحيدة حولها التي وجدتها حتى الآن هي جعل العقار ليس قراءًا وإضافة مجموعة وهمية (للخصائص المحسوبة). هذا يبدو وكأنه kludge.

هل هناك أي طريقة لإظهار DataForm/DataField DescriptionViewer على خصائص ReadOnly؟

هل كانت مفيدة؟

المحلول

نعم ، واجهت نفس المشكلة من قبل ولكن لم أحاول الإدارة. سمة العرض ، وقراءة السمة مختومة لا يمكنك أن ترث منها. يمكنك لفها وإنشاء سمة أخرى ولكن DataForm لا تتميز الآن بهذه السمة. لذلك لا يمكنك ...

ربما يمكنك القيام بأشياء مختلفة في ReadOnlyTemplate

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

الأمل يساعد ،

يعتبر!

نصائح أخرى

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

أين EntityDataStrings هو ملف مورد يحتوي على قيم ل "CountryLabel" و "CountryDescription".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top