سؤال

لدي خاصية تم إنشاؤها تلقائيًا من قاعدة البيانات في EDMX: وصف. أقوم بعد ذلك بإنشاء ملف .CS "فئة جزئية" للكيان وأضيف خاصية للقراءة فقط: وصف قصير. Getter's Getter's sportDescription ببساطة يعالج الوصف (يزيل تغذية الخط ، عودة النقل ، إلخ).

كيف يمكنني رفع إشعار تغيير الممتلكات لوساطة قصيرة على Setter of Description؟

شكرًا!

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

المحلول

سيكون هذا اختراقًا ، ولكن يمكن القيام به.

أولاً ، تحتاج إلى تجاوز ReportPropertyChanging و ReportPropertyChanged. ثم تحقق من المعلمة للحصول على اسم الخاصية الخاصة بك ... في هذه الحالة "الوصف". إذا حدث ذلك ، اتصل ReportPropertyChanging أو ReportPropertyChanged مع اسم الخاصية المشتقة ، في هذه الحالة "shortdescription". لأي قيمة أخرى للمعلمة ، اتصل بالنسخة الأساسية من ReportPropertyChanging/Changed.

يحرر: فمثلا:

    protected override void OnPropertyChanging(string property)
    {
        if (property == "Description")
        {
            base.OnPropertyChanging("ShortDescription");
        }
        base.OnPropertyChanging(property);
    }

    protected override void OnPropertyChanged(string property)
    {
        if (property == "Description")
        {
            base.OnPropertyChanged("ShortDescription");
        }
        base.OnPropertyChanged(property);
    }

نصائح أخرى

الأساليب جزئية أيضًا ، لذلك في فئتك الجزئية ، يمكنك إضافة رمز مثل هذا

 partial void OnDescriptionChanged()
  {
    OnPropertyChanged("ShortDescription"); 
  }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top