CARVIEW |
Select Language
HTTP/2 200
date: Wed, 30 Jul 2025 22:12:58 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"f61d48988a9e3fb9e5faa692915ac8ab"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=LavvK9TH90i8Az0OLeIRvj25pxhXarvj6sIDLcyaFweTckAOlAHEq1Fz1sgXXmcZkXpETvZ2vZlhVGZy3cyYi2OCK5JKxu%2BmUX3RmaylF9EY6B8Hnp9FefCkJaUdlHu7RyFbchVPQQqck9dV7VFOHljWv6rCHivtuDS42FADUL0wvqO5sr3Z9tpPykJxLyN8zwEqu4ul0lxZ9x76RgMm8Zj7wnTuobr95QvE9%2FAsAJKRqYndJcEIVkV0FYgr6Z0UFwjWcytnESzwi%2F%2FlLDODjg%3D%3D--VkmdDhoRODVNrAxf--Z7SXcPKzMJtuMPuF9hyJQQ%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1025841180.1753913577; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 22:12:57 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 22:12:57 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: D454:1E01C6:7BAC5:B347A:688A98E9
On_PropertyName_Changed · Fody/PropertyChanged Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 232
On_PropertyName_Changed
Lucas Trzesniewski edited this page Nov 4, 2021
·
7 revisions
Allows having a "similar named" method called when a property is set
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public string Name { get; set; }
public void OnNameChanged()
{
Debug.WriteLine("Name Changed");
}
}
Note the call to OnNameChanged injected in the setter of the property.
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
string name;
public string Name
{
get { return name; }
set
{
if (value != name)
{
name = value;
OnNameChanged();
OnPropertyChanged("Name");
}
}
}
public void OnNameChanged()
{
Debug.WriteLine("Name Changed");
}
public virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
To make usage more clearer, avoid "method is never used" warnings, or allow individual method names,
you can link the property and the change method via the OnChangedMethod
attribute:
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
[OnChangedMethod(nameof(OnMyNameChanged))]
public string Name { get; set; }
private void OnMyNameChanged()
{
Debug.WriteLine("Name changed");
}
}
To access the old and new value in the On_PropertyName_Changed
method, the following signature is supported:
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
[OnChangedMethod(nameof(OnName1Changed))]
public string Name1 { get; set; }
private void OnName1Changed(object oldValue, object newValue)
{
Debug.WriteLine("Name Changed:" + oldValue + " => " + newValue);
}
[OnChangedMethod(nameof(OnName2Changed))]
public string Name2 { get; set; }
private void OnName2Changed(string oldValue, string newValue)
{
Debug.WriteLine("Name Changed:" + oldValue + " => " + newValue);
}
}
The parameters of the On_PropertyName_Changed
can be object
or the same as the properties type.
However both parameters must be of the same type.
Clone this wiki locally
You can’t perform that action at this time.