New WPF Features: Binding to Dynamic Objects


This is part of a series on New WPF Features


C# 4.0 allows creation of dynamic objects which is useful when you are interacting with dynamic languages. If you are unfamiliar with the dynamic concept take a quick look at this blog entry


So back to WPF. We support binding to dynamic objects.. woohoo... To begin with you need to create the dynamic object (see attached proj)


    <Window.Resources>


        <local:DynamicObjectClass x:Key="MyDynamicObject" />


    </Window.Resources>


    <StackPanel Name="BindPanel" DataContext="{StaticResource MyDynamicObject}">


        <TextBox Text="{Binding Path=A}"/>


        <TextBlock Text="{Binding Path=B.C}" />


        <TextBox  Text="{Binding Path=[(x:Int32)0]}"/>


 


In the loaded event , we can then set values


            dynamic dynamicObj = BindPanel.DataContext ;


            dynamicObj.A = "Simple Binding";


 


            dynamicObj.B = new DynamicObjectClass();


            dynamicObj.B.C = "Nested Prop Binding";


 


            dynamicObj.AddItem("item 0");


            dynamicObj[0] = "Indexer Binding";


 



Project Code attached


Share this post

 

Dynamic Objects.zip

Comments (0)

Skip to main content