如何动态地将多个参数传递给ObjectDataProvider(在代码中)

时间:2012-10-02 18:12:40

标签: c# wpf

我是WPF的新手,想知道如何将多个参数传递给后面的代码ObjectDataProvider

Xaml(工作正常):

<ObjectDataProvider ObjectType="{x:Type local:GetListOpremaNajem}"
                  MethodName="GetOprema" x:Key="getData">
<ObjectDataProvider.MethodParameters>
  <system:String>TextToSearch</system:String>
  <system:Integer>5</system:Integer>
</ObjectDataProvider.MethodParameters>

对象方法:

public GetListOpremaNajem GetOprema(string searchText, UInt16 eID)
{
    if (!string.IsNullOrEmpty(searchText)) 
    {
        return Databases.CallStoredOprema(currentConnSTRING, searchText, eID);
    } 
    else 
    {
        return new GetListOpremaNajem();
    }
}

但是以下代码没有返回任何内容:

ObjectDataProvider _odProvider = new ObjectDataProvider();
_odProvider.ObjectType = typeof(GetListOpremaNajem);
_odProvider.MethodName = "GetOprema";
_odProvider.MethodParameters.Add("TextToSearch");
_odProvider.MethodParameters.Add(5);
this.DataContext = _odProvider;

仅使用一个参数(即searchText)时,效果很好。如何在代码后面传递两个参数?我在网上搜索过,发现没有传递多个参数的语法。我究竟做错了什么?感谢。

1 个答案:

答案 0 :(得分:1)

替换此 -

_odProvider.MethodParameters.Add(5);

_odProvider.MethodParameters.Add((UInt16)5);

您的方法未被调用,因为您在参数列表中添加了int类型,但您的方法期望第UInt16类型的第二个参数。因此,键入caste到UInt16,它应该工作正常。