SIGN UP MEMBER LOGIN:    
ARTICLE

Two-Way Databinding in WPF

Posted by Radhika Vemura Articles | WPF with C# February 16, 2009
This article kick starts your two way data-binding model in WPF.
Reader Level:

As the name suggests, if either one of the property changes the other one automatically updates it.

In WPF, this is done using simple design time settings. This is achieved as follows

Use the System.Windows.Data.Binding mark-up extension :

  1. Set the Mode attribute to System.Windows.Data.BindingMode.TwoWay
  2. Use UpdateSourceTrigger attribute to specify when the binding source should be updated. Set this value to "PropertyChanged".This updates the binding source immediately whenever the binding target property changes.

This is best explained with example below.

I have list box with list of colour names in it. I have a Textbox which shows selected Item Text of list box in Text property.

Requirement is, textbox Text is in synch with list box selected Item.

When you select "red" item in list box - textbox responds With Text and background colour.

Similarly, when you type another colour in Textbox, list box shows the relevant item as selected item in list box. Of course that also changes textbox Background colour.

I pasted the XAML design code below:

<Window x:Class="TwoWayBinding.Window1"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="Window1" Height="300" Width="300">

    <Grid Height="54" Width="165">

        <TextBox  Name="textBox" Margin="0,-77,0,0" Height="23" VerticalAlignment="Top"

                Text ="{Binding ElementName=listBox,

                        Path=SelectedItem.Content,

                        Mode=TwoWay,

                        UpdateSourceTrigger=PropertyChanged}"

                Background="{Binding ElementName=listBox, Path=SelectedItem.Content, Mode=OneWay}">

        </TextBox>

      <ListBox Name="listBox" >

            <ListBoxItem Content="Green"/>

            <ListBoxItem  Content="Yellow" IsSelected="True"/>

            <ListBoxItem Content="Orange" />

        </ListBox>

       

    </Grid>

</Window>

Next article on WPF:  M-V-VM is on the way.

Login to add your contents and source code to this article
share this article :
post comment
 

Thanks,
It was short and clear.

Posted by mohammad dayyan Jan 31, 2010
Team Foundation Server Hosting
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
    The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Nevron Gauge for SharePoint
Become a Sponsor