110,538
社区成员
发帖
与我相关
我的任务
分享
public ControlB(ControlA subject)
{
subject.NameChanged += new EventHandler<PropertyChangedEventArgs<string>>(subject_NameChanged);
subject.Name="abc";
}
class Program
{
static void Main(string[] args)
{
var a = new ControlA();
var b = new ControlB(a);
a.Name = "good";
a.Name = "bad";
Console.WriteLine(a.Name);
Console.ReadLine();
}
}
class PropertyChangedEventArgs<T> : EventArgs
{
public PropertyChangedEventArgs(T oldValue, T newValue)
{
OldValue = oldValue;
NewValue = newValue;
}
public T OldValue { get; private set; }
public T NewValue { get; private set; }
}
class ControlA
{
public event EventHandler<PropertyChangedEventArgs<string>> NameChanged;
private string name;
public string Name
{
get { return name; }
set
{
if (name == value)
return;
/*if (NameChanged != null)
NameChanged(this, new PropertyChangedEventArgs<string>(name, value));*/
name = value;
}
}
}
class ControlB
{
public ControlB(ControlA subject)
{
subject.NameChanged += new EventHandler<PropertyChangedEventArgs<string>>(subject_NameChanged);
}
void subject_NameChanged(object sender, PropertyChangedEventArgs<string> e)
{
Console.WriteLine("Name本来是{0},现在变成了{1}", e.OldValue, e.NewValue);
}
}
class Program
{
static void Main(string[] args)
{
var a = new ControlA();
var b = new ControlB(a);
a.Name = "good";
a.Name = "bad";
Console.ReadLine();
}
}
class PropertyChangedEventArgs<T> : EventArgs
{
public PropertyChangedEventArgs(T oldValue, T newValue)
{
OldValue = oldValue;
NewValue = newValue;
}
public T OldValue { get; private set; }
public T NewValue { get; private set; }
}
class ControlA
{
public event EventHandler<PropertyChangedEventArgs<string>> NameChanged;
private string name;
public string Name
{
get { return name; }
set
{
if (name == value)
return;
if (NameChanged != null)
NameChanged(this, new PropertyChangedEventArgs<string>(name, value));
name = value;
}
}
}
class ControlB
{
public ControlB(ControlA subject)
{
subject.NameChanged += new EventHandler<PropertyChangedEventArgs<string>>(subject_NameChanged);
}
void subject_NameChanged(object sender, PropertyChangedEventArgs<string> e)
{
Console.WriteLine("Name本来是{0},现在变成了{1}", e.OldValue, e.NewValue);
}
}