关于ObjectDataProvider绑定方法使用案例
http://blog.csdn.net/iamsupercola/article/details/7050709
这个案例实现什么功能:ComboBox是个组合框,即下拉菜单,对此实现数据绑定。
首先新建了EnumType.cs,定义了一个枚举InlineToolType,
using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SQLtest.Model { public enum InlineToolType { Noraml, Sorter, CassetteCleaner, MaskCleaner, BufferUsing, NoUseTransfer, Packing, CoverLens, CP, CFOG } }
#region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll
#endregion
在 mscorlib ,命名空间 namespace System中有一个函数 public static Array GetValues(Type enumType);
函数简介:获取枚举的全部元素
// 参数:
// enumType:
// An enumeration type.
// 返回结果:
// An array that contains the values of the constants in enumType.
首先是WPF端的关键代码,命名空间的引用,一个是上面提到的GetValues函数的命名空间,包括程序集
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:u="clr-namespace:SQLtest.Model"
ObjectDataProvider数据绑定:在此X:key=“InlineTypeEnum” 方法名称是GetValues, 类型是枚举 ObjectType="{x:Type sys:Enum}",参数类型“u:InlineToolType”
在XAML文件中,我们可以把需要多次使用的类容提取出来放在资源字典中,需要使用的时候就用这个资源的key将这个资源检索出来。
1 <UserControl.Resources > 2 <ObjectDataProvider x:Key="InlineTypeEnum" MethodName="GetValues" ObjectType="{x:Type sys:Enum}" > 3 <ObjectDataProvider.MethodParameters> 4 <x:Type TypeName="u:InlineToolType"/> 5 </ObjectDataProvider.MethodParameters> 6 </ObjectDataProvider> 7 </UserControl.Resources>
和Combobox的绑定,绑定静态资源InlineTypeEnum,通过key查找到GetValues方法得到的InlineToolType 资源,加载到ComboBox中。
1 <ComboBox Width="100" 2 ItemsSource="{Binding Source={StaticResource InlineTypeEnum}}" 3 SelectedItem="{Binding SelectedInlineToolType}" > 4 </ComboBox>