سؤال

لدي الشبكة التي أصبح يسري إلى مجموعة.لسبب ما أنا لا أعرف الآن عندما أفعل بعض العمل في الشبكة, الشبكة لا تحديث.

الحالة :عندما كنت اضغط على زر في الشبكة ، وزيادة قيمة في نفس الخط.عندما كنت فوق يمكنني التصحيح ومعرفة قيمة الزيادة ولكن قيمة لا تغيير في الشبكة. ولكن عند النقر فوق الزر تصغير و استعادة النوافذ قيمة يتم تحديث...ما الذي يجب أن أفعله أن القيمة تحديث مثل ما كان من قبل ؟

التحديث هذا ليس حل ولكن قبلت أفضل إجابة هنا.

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

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

المحلول

من أجل ملزمة أن تكون ثنائية الاتجاه ، من السيطرة على مصدر البيانات من مصدر البيانات إلى التحكم في مصدر البيانات يجب أن تنفذ المنشأة تغيير إعلام الأحداث في واحد من 2 من الطرق الممكنة:

  • تنفيذ INotifyPropertyChanged واجهة رفع الحدث عند تغيير خصائص :

    public string Name 
    {
      get
      {
        return this._Name;
      }
      set
      {
        if (value != this._Name)
        {
            this._Name= value;
            NotifyPropertyChanged("Name");
        }
      }
    }
    
  • Inplement تغير حال كل الممتلكات التي يجب أن يخطر الضوابط عندما يتغير.اسم الحدث يجب أن تكون في شكل PropertyNameتغيير :

    public event EventHandler NameChanged;
    
    public string Name 
    {
      get
      {
        return this._Name;
      }
      set
      {
        if (value != this._Name)
        {
            this._Name= value;
            if (NameChanged != null) NameChanged(this, EventArgs.Empty);
        }
      }
    }
    

    *ملاحظة الممتلكات الخاصة بك القيم الصحيحة منها بعد تكبير النافذة ، لأن التحكم rereads القيم من مصدر البيانات.

نصائح أخرى

يبدو أنك تحتاج إلى استدعاء DataBind في تحديث التعليمات البرمجية.

أنا باستخدام BindingSource الكائن بين مجموعتي و الشبكة.عادة أنا لا يجب أن ندعو أي شيء.

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