2010-09-20 18 views
2

Je souhaite transmettre en tant que paramètre pour la méthode GetValues ​​de MyItemSourceProvider une valeur concrète de MyEnum. Comment l'écrire s'il vous plaît?Valeur d'énumération WPF en tant que paramètre de méthode de ObjectDataProvider

<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type local:MyItemSourceProvider}"> 
    <ObjectDataProvider.MethodParameters> 
     <!-- ENUM value (e.g. MyEnum.Record1) -->  
    </ObjectDataProvider.MethodParameters>   
</ObjectDataProvider> 
méthode

:

public System.Collections.IEnumerable GetValues(MyEnum key) {} 
public enum MyEnum {Record1, ...} 

Répondre

1

Essayez ceci:

<Window.Resources>  
    <local:MyEnum x:Key="valueToPassIn">Record1</local:MyEnum> 
    <x:Type x:Key="typeToPassIn" TypeName="local:MyEnum" />  

    <ObjectDataProvider MethodName="GetValues"   
     ObjectType="{x:Type sys:Enum}"   
     x:Key="ExampleEnumValues" 
     MethodParameters="{StaticResource valueToPassIn}">   
    </ObjectDataProvider> 
</Window.Resources> 
2

Vous pouvez la mettre en œuvre comme suit:

<ObjectDataProvider MethodName="GetValues" 
        ObjectType="{x:Type local:MyItemSourceProvider}" 
        x:Key="getValues"> 
    <ObjectDataProvider.MethodParameters> 
     <local:MyEnum>Record1</local:MyEnum> 
    </ObjectDataProvider.MethodParameters> 
</ObjectDataProvider> 

ou vous pouvez aussi le faire de cette façon:

<ObjectDataProvider MethodName="GetValues" 
        ObjectType="{x:Type local:MyItemSourceProvider}" 
        x:Key="getValues"> 
    <ObjectDataProvider.MethodParameters> 
     <x:Static Member="local:MyEnum.Record1" /> 
    </ObjectDataProvider.MethodParameters> 
</ObjectDataProvider> 

avec:

public enum MyEnum {Record1, Record2, ...} 
0

Vous avez peut-être déjà trouvé réponse. Sinon, vous pouvez regarder ici -

http://msdn.microsoft.com/en-us/library/bb613576.aspx

Ou

<Window x:Class="SimpleXmlDataSourceExample.MainWindow2" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:Sys="clr-namespace:System;assembly=mscorlib" 
    xmlns:local="clr-namespace:SimpleXmlDataSourceExample" 
    Title="MainWindow2" Height="300" Width="403"> 
<Window.Resources> 
    <ObjectDataProvider x:Key="deptEnumSource" ObjectType="{x:Type Sys:Enum}" MethodName="GetValues" > 
     <ObjectDataProvider.MethodParameters> 
      <x:Type TypeName="local:DeptEnum"></x:Type> 
     </ObjectDataProvider.MethodParameters> 
    </ObjectDataProvider> 
</Window.Resources> 
<Grid> 
    <ComboBox Height="23" HorizontalAlignment="Left" Margin="69,68,0,0" Name="comboBox1" 
       VerticalAlignment="Top" 
       Width="156" 
       ItemsSource="{Binding Source={StaticResource deptEnumSource}}" 
       > 
    </ComboBox> 
</Grid> 

et ce lien ainsi:

http://wpfgrid.blogspot.com/2013/01/v-behaviorurldefaultvmlo_10.html