Once again, while browsing StackOverflow.com, I came across a question from a user who needed to fix their ComboBox Binding. The user in question was Binding XML data in Key/Value pairs to the combo box, displaying the Key and wanted to retrieve the Value.

This was achieved using the following example;

My XML Test Data was saved as XMLFile1.xml;

xml version="1.0" encoding="utf-8"?>


  <Colour ID="1" Name="None" />

  <Colour ID="2" Name="Red" />

  <Colour ID="3" Name="White" />


My XAML was;

<Window x:Class="MainWindow"



    Title="MainWindow" Height="74" Width="150">


        <XmlDataProvider x:Key="ColourData" Source="/XMLFile1.xml" XPath="Colours" />



        <ComboBox x:Name="cmbColour" HorizontalAlignment="Left" Margin="10,10,0,0" 

                  VerticalAlignment="Top" Width="120" DisplayMemberPath="@ID" 

                  ItemsSource="{Binding Source={StaticResource ColourData}, XPath=./Colour}" 


                  SelectedValue="{Binding SelectedColourValue}"




And finally my ViewModel was;

Imports System.ComponentModel

Imports System.Xml


Class MainWindow : Implements INotifyPropertyChanged


    Private _SelectedColourValue As String

    Public Property SelectedColourValue As String


            Return _SelectedColourValue


        End Get

        Set(value As String)


            If value.Equals(_SelectedColourValue) = False Then


                _SelectedColourValue = value

                RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("SelectedColourValue"))


            End If


        End Set

End Property

    Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged


    Public Sub New()


        ' This call is required by the designer.



        ' Add any initialization after the InitializeComponent() call.

        me.DataContext = Me


    End Sub

End Class

This successfully displayed the ID property in the ComboBox, and when selected the “SelectedColourValue” Property held the Value.

By |2013-01-24T17:15:00+00:00January 24th, 2013|Binding, MVVM, VB.net, WPF, XML|0 Comments

About the Author:

Leave A Comment