WPF uygulamalarında  mesela bir combobox’a bir enum tipin değerlerini doğrudan bağlayamayız,çünkü enum tipi  tüm değerlerini döndüren bir property’e sahip değil.İsimleri almanın tek yolu GetNames() metodunu çağırmaktır.Peki bunu XAML’da nasıl yapabiliriz derken tam bu sırada ObjectDataProvider imdadımıza yetişiyor.ObjectDataProvider bize metodun ismini ve parametrelerini belirtmemizi ve bu metodu XAML  ile çağırmamızı sağlar.   

 xmlns:sys="clr-namespace:System;assembly=mscorlib"

<Window.Resources>       

 <ObjectDataProvider x:Key="visibilityResource" MethodName="GetNames" ObjectType="{x:Type sys:Enum}">           

  <ObjectDataProvider.MethodParameters>               

   <x:TypeExtension TypeName="Visibility"/>           

  </ObjectDataProvider.MethodParameters>       

 </ObjectDataProvider>   

</Window.Resources>          

<ComboBox Height="30" Width="120" ItemsSource="{Binding Source={StaticResource visibilityResource}}" SelectedIndex="0" />

ObjectDataProvider ile enum tiplerin değerlerini kolayca listeleme kontrollerine bağlayabiliriz.

Teşekkürler.

About the Author