Наследование интерфейса INotifyPropertyChanged классом с 2 свойствами - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Подскажите ,пожалуйста ,как при наследовании интерфейса INotifyPropertyChanged классом у которого есть 2 и более свойства при их изменении для каждого из них вызывалось своё событие? В приведенном мной примере я подписываю оба метода (ch,ch2) к событию PropertyChange и они выполняются оба.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.ComponentModel;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9. class Program
  10. {
  11. private static Class1 cl=new Class1();
  12. static void Main(string[] args)
  13. {
  14. cl.PropertyChanged += ch;
  15. cl.PropertyChanged += ch2;
  16. cl.Index = 20;
  17. cl.Str = "ssssssssssssssssss";
  18. Console.ReadLine();
  19. }
  20. private static void ch(object sender, EventArgs e)
  21. {
  22. Console.WriteLine("New value="+cl.Index);
  23. }
  24. private static void ch2(object sender, EventArgs e)
  25. {
  26. Console.WriteLine("New value=" + cl.Str);
  27. }
  28. }
  29. class Class1 : INotifyPropertyChanged
  30. {
  31. private int index;
  32. private string str;
  33. public event PropertyChangedEventHandler PropertyChanged;
  34. public int Index
  35. {
  36. get { return index; }
  37. set
  38. {
  39. index = value;
  40. OnProperty("Index");
  41. }
  42. }
  43. public string Str
  44. {
  45. get { return str; }
  46. set
  47. {
  48. str = value;
  49. OnProperty("Str");
  50. }
  51. }
  52. protected void OnProperty(string name)
  53. {
  54. PropertyChangedEventHandler handler = PropertyChanged;
  55. if (handler != null)
  56. {
  57. handler(this, new PropertyChangedEventArgs(name));
  58. }
  59. }
  60. }
  61. }

Решение задачи: «Наследование интерфейса INotifyPropertyChanged классом с 2 свойствами»

textual
Листинг программы
  1. class Program
  2.     {
  3.         private static Class1 cl=new Class1();
  4.  
  5.         static void Main(string[] args)
  6.         {
  7.             //Class1 cl = new Class1();
  8.             cl.PropertyChanged += ch;
  9.             cl.Index = 20;
  10.             cl.Str = "ssssssssssssssssss";
  11.             Console.ReadLine();
  12.         }
  13.  
  14.         static void ch(object sender, PropertyChangedEventArgs args)
  15.         {
  16.             //Class1 cl = (Class1)sender;
  17.             if (args.PropertyName == "Index")
  18.             {
  19.                 Console.WriteLine("Index. New value=" + cl.Index);
  20.             }
  21.             else if (args.PropertyName == "Str")
  22.             {
  23.                 Console.WriteLine("Str. New value=" + cl.Str);
  24.             }
  25.         }
  26.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы