5

パラメータ名: タイプ、名前など、null にすることはできません。これらの質問はすべて、実際のパラメーターが設定されていないことが原因です。私が知る限り、ObjectDataProvider の「パターン」パラメーターはありません。次のマークアップは、「値を null にすることはできません。パラメータ名: パターン」を生成し、青い波線の下線を付けます。デザイナーが例外をスローして読み込みに失敗することがありますが、リロード ボタンを押すとページが読み込まれます。コードとマークアップがコンパイルされ、期待どおりに実行されます。これは何が原因ですか?

<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 を対象

4

1 に答える 1

4

私はそれがVSのバグだとは思わない。プロパティ IsAsynchronous="True" を ObjectDataProvider に追加してみてください。これにより、デザイナー エラーが解消されます。プロパティのデフォルトは False で、デザイナーはアクティブなコンテキストでオブジェクトを作成しようとします。ここにリンクがあります:

ObjectDataProvider

私のために働いた。それがうまくいくことを願っています。

于 2014-06-29T00:55:04.190 に答える