В этом сообщении я нашел INotifyPropertyChanged
, и я проверяю, что это пример , но я замечаю, что могу сделать то же самое без инструмента INotifyPropertyChanged
и более, я могу определить свое событие и сделай то же самое ...
Например, в
public string CustomerName
{
get
{
return this.customerNameValue;
}
set
{
if (value != this.customerNameValue)
{
this.customerNameValue = value;
NotifyPropertyChanged("CustomerName");
}
}
}
Я могу поставить любую строку, и она может быть передана без какой-либо проверки, и я уже делаю что-то подобное, как показано ниже
public delegate void ChangeHandler(string item);
public class DemoCustomer2
{
// These fields hold the values for the public properties.
private Guid idValue = Guid.NewGuid();
private string customerNameValue = String.Empty;
private string phoneNumberValue = String.Empty;
public event ChangeHandler OnChange;
void CallOnChange(string item)
{
if (OnChange != null)
OnChange(item);
}
// The constructor is private to enforce the factory pattern.
private DemoCustomer2()
{
customerNameValue = "Customer";
phoneNumberValue = "(555)555-5555";
}
// This is the public factory method.
public static DemoCustomer2 CreateNewCustomer()
{
return new DemoCustomer2();
}
// This property represents an ID, suitable
// for use as a primary key in a database.
public Guid ID
{
get
{
return this.idValue;
}
}
public string CustomerName
{
get
{
return this.customerNameValue;
}
set
{
if (value != this.customerNameValue)
{
this.customerNameValue = value;
CallOnChange("CustomerName");
}
}
}
public string PhoneNumber
{
get
{
return this.phoneNumberValue;
}
set
{
if (value != this.phoneNumberValue)
{
this.phoneNumberValue = value;
CallOnChange("PhoneNumber");
}
}
}
}
Я не нашел в этом полезного использования, но кто-нибудь может мне помочь, если есть какое-нибудь действительно полезное использование для них?