Over a million developers have joined DZone.

Leveraging your XAML MVVM Skills in HTML – Working with Observable Properties

DZone's Guide to

Leveraging your XAML MVVM Skills in HTML – Working with Observable Properties

· Web Dev Zone ·
Free Resource

Jumpstart your Angular applications with Indigo.Design, a unified platform for visual design, UX prototyping, code generation, and app development.

This is a multi-part excerpt series from my PluralSight course Knockout for the XAML Developer 


Knockout for the XAML Developer

The Knockout for the XAML developer course helps XAML developers, whether you’re a WPF or Silverlight developer, take their existing MVVM skills and transition them to the exciting world of HTML development.

This series is going to be broken down into six parts and should be enough to show you how you can leverage your existing MVVM Skills you acquired while building XAML based and apply those to building HTML applications with Knockout JS

Series Table of Context

  1. Setting up the Data Context 
  2. Working with Observable Properties (this post)
  3. Working with Observable Arrays
  4. Handling User Click Events
  5. Handling Binding Context Changes
  6. Changing UI Appearances based on Bindings

Once we have our data context set up, the next logical step is to look at how to set up observable properties and bind them to UI elements. When working in XAML applications you would set up your properties as seen below:

How to set up observable properties in XAML


The property above is pretty straightforward. We have a string property, which has a backing field, and inside our Setter we are going to raise change notification for the given field to notify the UI that the display element needs to refresh to show the updated data.

Once we have our property set up, we bind it to our UI elements as seen below:


How do we accomplish the same goal when using KnockoutJs?

How to set  up the Observable Properties in Knockout Js


The image above is the 1 to 1 equivalent to setting up our observable property in Knockout

Breaking down this code (this code is in TypeScript).

  1. We first declared our observable property
  2. Next we need to initialize it, which we are doing with ko.observable()

Now that we have our property set up, we need to bind it to our UI. I can do this by using the knockout data-bind syntax as seen below


As you can see, setting up your Observable Properties in Knockout is very similar to setting up the Observable Properties in a XAML based applications.

If you want to learn more about how your XAML MVVM skills transfer to HTML Development, watch my Pluralsight Course – Knockout for the XAML Developer

Take a look at an Indigo.Design sample application to learn more about how apps are created with design to code software.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}