首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为ObjectDataProvider的方法参数的WPF枚举值

作为ObjectDataProvider的方法参数的WPF枚举值
EN

Stack Overflow用户
提问于 2010-09-20 20:28:22
回答 3查看 5.2K关注 0票数 2

我希望将MyEnum的具体值作为参数从MyItemSourceProvider传递给GetValues方法。请告诉我怎么写?

代码语言:javascript
复制
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type local:MyItemSourceProvider}">
    <ObjectDataProvider.MethodParameters>
        <!-- ENUM value (e.g. MyEnum.Record1) -->       
    </ObjectDataProvider.MethodParameters>        
</ObjectDataProvider>

方法:

代码语言:javascript
复制
public System.Collections.IEnumerable GetValues(MyEnum key) {}
public enum MyEnum {Record1, ...}
EN

回答 3

Stack Overflow用户

发布于 2011-10-10 23:37:52

您可以按如下方式实现:

代码语言:javascript
复制
<ObjectDataProvider MethodName="GetValues" 
                    ObjectType="{x:Type local:MyItemSourceProvider}" 
                    x:Key="getValues">
    <ObjectDataProvider.MethodParameters>
        <local:MyEnum>Record1</local:MyEnum>
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

或者你也可以这样做:

代码语言:javascript
复制
<ObjectDataProvider MethodName="GetValues" 
                    ObjectType="{x:Type local:MyItemSourceProvider}" 
                    x:Key="getValues">
    <ObjectDataProvider.MethodParameters>
        <x:Static Member="local:MyEnum.Record1" />
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

通过以下方式:

代码语言:javascript
复制
public enum MyEnum {Record1, Record2, ...}
票数 3
EN

Stack Overflow用户

发布于 2010-09-20 20:58:44

试试这个:

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2013-01-11 04:56:37

你可能已经找到答案了。如果没有,你可以看这里-

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

代码语言:javascript
复制
<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>

在此链接中也是如此:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3751461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档