in

WPF Design and Development

IdentityMine Team Blogs

Jobi K Joy

November 2007 - Posts

  • Show all the System.Windows.Media.Colors using DataBinding

    Here is a sample to show all the Colors or even Brushes of WPF System.Windows.Media.Colors class.

    <ListBox ItemsSource="{Binding Mode=OneWay, Source={StaticResource helper}}"  ItemTemplate="{DynamicResource DataTemplate1}"/>

    Bellow is a function which gives all of its properties as PropertyInfo Collection.(If anybody out here knows a way to eliminate the use of this Helper class, please point that here)

    public class Helper{    public PropertyInfo[] GetPropNames(Type type)    {        return type.GetProperties();    }}

    Now you can write an ObjectDataProvider in XAML to call this function and then a DataTemplate to bind the PropertyName to the approapriate Dependancy Property. See the XAML

      <Window.Resources>    <ObjectDataProvider x:Key="helper" MethodName="GetPropNames" ObjectType="{x:Type local:Helper}">      <ObjectDataProvider.MethodParameters>        <x:Type TypeName="Colors"/>      </ObjectDataProvider.MethodParameters>    </ObjectDataProvider>     <DataTemplate x:Key="DataTemplate1">      <StackPanel Orientation="Horizontal">        <Rectangle Width="40" Height="28" Fill="{Binding Name}" Stroke="#FF000000"/>        <TextBlock  Text ="{Binding Name}" Foreground="{Binding Name}" />      </StackPanel>    </DataTemplate>  </Window.Resources>

    Now if you need to show Brushes class members just need to replace Colors from the XAML with Brushes as shown here

        <ObjectDataProvider x:Key="helper" MethodName="GetPropNames" ObjectType="{x:Type local:Helper}">      <ObjectDataProvider.MethodParameters>        <x:Type TypeName="Brushes"/>      </ObjectDataProvider.MethodParameters>    </ObjectDataProvider>

     

More Posts
© 2007 IdentityMine, Inc.
Powered by Community Server (Commercial Edition), by Telligent Systems