Наследование интерфейса 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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д