Наследование интерфейса INotifyPropertyChanged классом с 2 свойствами - C#
Формулировка задачи:
Добрый вечер.
Подскажите ,пожалуйста ,как при наследовании интерфейса INotifyPropertyChanged классом у которого есть 2 и более свойства при их изменении для каждого из них вызывалось своё событие?
В приведенном мной примере я подписываю оба метода (ch,ch2) к событию PropertyChange и они выполняются оба.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.ComponentModel;
- namespace ConsoleApplication1
- {
- class Program
- {
- private static Class1 cl=new Class1();
- static void Main(string[] args)
- {
- cl.PropertyChanged += ch;
- cl.PropertyChanged += ch2;
- cl.Index = 20;
- cl.Str = "ssssssssssssssssss";
- Console.ReadLine();
- }
- private static void ch(object sender, EventArgs e)
- {
- Console.WriteLine("New value="+cl.Index);
- }
- private static void ch2(object sender, EventArgs e)
- {
- Console.WriteLine("New value=" + cl.Str);
- }
- }
- class Class1 : INotifyPropertyChanged
- {
- private int index;
- private string str;
- public event PropertyChangedEventHandler PropertyChanged;
- public int Index
- {
- get { return index; }
- set
- {
- index = value;
- OnProperty("Index");
- }
- }
- public string Str
- {
- get { return str; }
- set
- {
- str = value;
- OnProperty("Str");
- }
- }
- protected void OnProperty(string name)
- {
- PropertyChangedEventHandler handler = PropertyChanged;
- if (handler != null)
- {
- handler(this, new PropertyChangedEventArgs(name));
- }
- }
- }
- }
Решение задачи: «Наследование интерфейса INotifyPropertyChanged классом с 2 свойствами»
textual
Листинг программы
- class Program
- {
- private static Class1 cl=new Class1();
- static void Main(string[] args)
- {
- //Class1 cl = new Class1();
- cl.PropertyChanged += ch;
- cl.Index = 20;
- cl.Str = "ssssssssssssssssss";
- Console.ReadLine();
- }
- static void ch(object sender, PropertyChangedEventArgs args)
- {
- //Class1 cl = (Class1)sender;
- if (args.PropertyName == "Index")
- {
- Console.WriteLine("Index. New value=" + cl.Index);
- }
- else if (args.PropertyName == "Str")
- {
- Console.WriteLine("Str. New value=" + cl.Str);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д