關於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將這個資源檢索出來。

x:key的作用就是使用為資源貼上用於檢索的索引。在WPF中,幾乎每個元素都有自己的Resource屬性,這個屬性就是“key-value”的集合。只要把元素放進這個集合里,這個元素就成了資源字典中的一個條目。當然,為了能檢索到這個條件,就必須為它添加x:Key。資源在WPF中非常重要,需要重復使用的XAML內容,如Style,各種Template和動畫都需要放在資源里。
 
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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM