我已经看到很多其他ObjectDataProvider问题,其中参数名称:type,name,whatever,不能为null。这些问题都归因于未设置实际参数。据我所知,没有"模式" ObjectDataProvider的参数。以下标记生成"值不能为空。参数名称:pattern",伴随着蓝色波浪线下划线。有时,设计者会抛出异常而无法加载,但是按下重新加载按钮会加载页面。代码和标记按预期编译和运行。造成这种情况的原因是什么?
<Page.Resources>
...
<ObjectDataProvider ObjectType="{x:Type local:AutoFillBox}" MethodName="RecUpdateOutput" x:Key="odpOutput">
<ObjectDataProvider.MethodParameters>
<sys:String>08:00</sys:String>
<sys:String>12:00</sys:String>
<sys:String>13:00</sys:String>
<sys:String>18:00</sys:String>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Page.Resources>
该课程的一部分,想要注意这不是一个自定义控件,只是一个糟糕的命名选择:
public partial class AutoFillBox
{
public AutoFillBox()
{ //default }
public string RecUpdateOutput(string time1, string time2, string time3, string time4)
{
//do stuff
}
}
它是页面上唯一的ObjectDataProvider,如果删除第4个字符串参数,则错误消失。另外,它调用的方法确实需要4个字符串,并返回一个字符串,这样我就可以将它的结果绑定到输出文本框。我在具有类似方法和签名的不同页面上使用类似的ObjectDataProvider,它也显示相同的错误。到底发生了什么事?
Visual Studio Ultimate 2013,Windows 7 Professional,目标是.net 4.5
答案 0 :(得分:3)
我不相信它是一个VS错误。尝试添加属性IsAsynchronous =&#34; True&#34;到ObjectDataProvider,这应该消除设计师的错误。该属性默认为False,设计器将尝试在活动上下文中创建对象。这是链接:
为我工作。希望它适合你。