{"id":12176,"date":"2024-03-14T15:17:59","date_gmt":"2024-03-14T15:17:59","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/"},"modified":"2025-08-04T22:21:05","modified_gmt":"2025-08-04T22:21:05","slug":"how-to-bind-inotifypropertychanged-in-wpf","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/","title":{"rendered":"WPF INotifyPropertyChanged Binding Guide"},"content":{"rendered":"<p>In WPF, you can use the Binding class to bind a property of an object that implements the INotifyPropertyChanged interface. Here is an example code demonstrating how to bind a TextBox in XAML to a property of a ViewModel class that implements the INotifyPropertyChanged interface.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Window<\/span> <span class=\"hljs-attr\">x:Class<\/span>=<span class=\"hljs-string\">\"YourNamespace.MainWindow\"<\/span>\r\n        <span class=\"hljs-attr\">xmlns<\/span>=<span class=\"hljs-string\">\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"<\/span>\r\n        <span class=\"hljs-attr\">xmlns:x<\/span>=<span class=\"hljs-string\">\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"<\/span>\r\n        <span class=\"hljs-attr\">xmlns:local<\/span>=<span class=\"hljs-string\">\"clr-namespace:YourNamespace\"<\/span>\r\n        <span class=\"hljs-attr\">Title<\/span>=<span class=\"hljs-string\">\"MainWindow\"<\/span> <span class=\"hljs-attr\">Height<\/span>=<span class=\"hljs-string\">\"350\"<\/span> <span class=\"hljs-attr\">Width<\/span>=<span class=\"hljs-string\">\"525\"<\/span>&gt;<\/span>\r\n\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Window.DataContext<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">local:ViewModel<\/span>\/&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Window.DataContext<\/span>&gt;<\/span>\r\n\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Grid<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">TextBox<\/span> <span class=\"hljs-attr\">Text<\/span>=<span class=\"hljs-string\">\"{Binding YourProperty, Mode=TwoWay}\"<\/span>\/&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Grid<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">Window<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>In the code above, the ViewModel class is a ViewModel class that implements the INotifyPropertyChanged interface, with a property named YourProperty. We then use Binding on the Text property of the TextBox to bind to the YourProperty property of the ViewModel.<\/p>\n<p>When the YourProperty property in the ViewModel changes, the INotifyPropertyChanged interface will notify the bound UI element (in this case the TextBox), updating the corresponding value on the UI interface. This allows for the value of the bound TextBox on the UI interface to change accordingly when the YourProperty property is modified in the ViewModel.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In WPF, you can use the Binding class to bind a property of an object that implements the INotifyPropertyChanged interface. Here is an example code demonstrating how to bind a TextBox in XAML to a property of a ViewModel class that implements the INotifyPropertyChanged interface. &lt;Window x:Class=&#8221;YourNamespace.MainWindow&#8221; xmlns=&#8221;http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation&#8221; xmlns:x=&#8221;http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml&#8221; xmlns:local=&#8221;clr-namespace:YourNamespace&#8221; Title=&#8221;MainWindow&#8221; Height=&#8221;350&#8243; Width=&#8221;525&#8243;&gt; &lt;Window.DataContext&gt; &lt;local:ViewModel\/&gt; [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[2556,15898,15899,1928,9314],"class_list":["post-12176","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-data-binding","tag-inotifypropertychanged","tag-mvvm","tag-wpf","tag-xaml"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WPF INotifyPropertyChanged Binding Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Master INotifyPropertyChanged binding in WPF with practical code examples and XAML techniques.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WPF INotifyPropertyChanged Binding Guide\" \/>\n<meta property=\"og:description\" content=\"Master INotifyPropertyChanged binding in WPF with practical code examples and XAML techniques.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T15:17:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T22:21:05+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Liam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"WPF INotifyPropertyChanged Binding Guide\",\"datePublished\":\"2024-03-14T15:17:59+00:00\",\"dateModified\":\"2025-08-04T22:21:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/\"},\"wordCount\":145,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"data binding\",\"INotifyPropertyChanged\",\"MVVM\",\"WPF\",\"XAML\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/\",\"name\":\"WPF INotifyPropertyChanged Binding Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T15:17:59+00:00\",\"dateModified\":\"2025-08-04T22:21:05+00:00\",\"description\":\"Master INotifyPropertyChanged binding in WPF with practical code examples and XAML techniques.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WPF INotifyPropertyChanged Binding Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WPF INotifyPropertyChanged Binding Guide - Blog - Silicon Cloud","description":"Master INotifyPropertyChanged binding in WPF with practical code examples and XAML techniques.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/","og_locale":"en_US","og_type":"article","og_title":"WPF INotifyPropertyChanged Binding Guide","og_description":"Master INotifyPropertyChanged binding in WPF with practical code examples and XAML techniques.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T15:17:59+00:00","article_modified_time":"2025-08-04T22:21:05+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"WPF INotifyPropertyChanged Binding Guide","datePublished":"2024-03-14T15:17:59+00:00","dateModified":"2025-08-04T22:21:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/"},"wordCount":145,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["data binding","INotifyPropertyChanged","MVVM","WPF","XAML"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/","name":"WPF INotifyPropertyChanged Binding Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T15:17:59+00:00","dateModified":"2025-08-04T22:21:05+00:00","description":"Master INotifyPropertyChanged binding in WPF with practical code examples and XAML techniques.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-bind-inotifypropertychanged-in-wpf\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"WPF INotifyPropertyChanged Binding Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/12176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=12176"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/12176\/revisions"}],"predecessor-version":[{"id":155977,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/12176\/revisions\/155977"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=12176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=12176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=12176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}