WPF设计器错误值不能为null。参数名称:pattern

时间:2014-06-18 18:11:23

标签: c# wpf xaml objectdataprovider

我已经看到很多其他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

1 个答案:

答案 0 :(得分:3)

我不相信它是一个VS错误。尝试添加属性IsAsynchronous =&#34; True&#34;到ObjectDataProvider,这应该消除设计师的错误。该属性默认为False,设计器将尝试在活动上下文中创建对象。这是链接:

ObjectDataProvider

为我工作。希望它适合你。