рдкрд┐рдЫрд▓реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреИрд╕рд╛рдЦреА рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣рд╛рдБ рд╕реЗ рдЪреАрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдСрдирдкреНрд░реЛрдкрд░реНрдЯреА рдЪреЗрдВрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
[Conditional( "DEBUG" )]
[DebuggerStepThrough]
public void VerifyPropertyName( string propertyName)
{
// Verify that the property name matches a real,
// public, instance property on this object.
if (TypeDescriptor.GetProperties( this )[propertyName] == null )
{
string msg = "Invalid property name: " + propertyName;
if ( this .ThrowOnInvalidPropertyName)
throw new Exception(msg);
else
Debug.Fail(msg);
}
}
рдФрд░ рдЖрдЬ рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдПрдХ рд╕реБрдВрджрд░ рддрд░реАрдХрд╛ рдвреВрдВрдв рд▓рд┐рдпрд╛ред
рд╕рдорд╛рдзрд╛рди рд╕реБрдВрджрд░ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рд░рд▓рддрд╛ рд╕реЗ рднреЛрдЬ рдХреЗ рдмрд┐рдВрджреБ рдкрд░: рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЗрд╕ рддрд░рд╣:
this .OnPropertyChanged(() => this .ShowOverrideButton);
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдЕрдзрд┐рднрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
protected void OnPropertyChanged<T>(Expression<Func<T>> property)
{
PropertyChangedEventHandler handler = this .PropertyChanged;
if (handler != null )
{
var expression = property.Body as MemberExpression;
if (expression == null )
{
throw new NotSupportedException( "Invalid expression passed. Only property member should be selected." );
}
handler( this , new PropertyChangedEventArgs(expression.Member.Name));
}
}
* This source code was highlighted with Source Code Highlighter .
рд╣реЛ рдЧрдпрд╛ред рдЖрдк OnPropertyChange рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдмрдВрдзрди рдореЗрдВ XAML рдореЗрдВ рдЕрднреА рднреА рдЦрд░рд╛рдм рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирд╕реЗ рдХреИрд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдпрд╛ рдЬрд╛рдПред