1

我想编译这个 WPF 代码并得到这个错误。

public void SetContentObject(Type contentType)
        {
            this.Dispatcher.BeginInvoke(delegate(Type input) //Error here <-
            {
                object obj = Activator.CreateInstance(input);
                this.Content = obj;//this.Content declared as object
            }, new object[]
            {
                contentType
            });
        }

编辑1:

使用 .NET 3.5。4.0 不允许

4

2 回答 2

0

Dispatcher.BeginInvoke() 方法应该传递不带参数的委托(参见http://msdn.microsoft.com/en-us/library/0b1bf3y3.aspx)。您可以传递您的参数,在您的 anaimous 方法之外声明它。更新

public void SetContentObject(Type contentType)
    {
        Type input;
        Dispatcher.BeginInvoke(new Action(delegate
        {
               object obj = Activator.CreateInstance(input);
               this.Content = obj;               

        }), new object[]
        {
            contentType
        });
    }
于 2013-04-24T06:59:17.040 回答
0

您可能会对 Invoke 和 BeginInvoke 感到困惑:

public void Invoke(Action callback, DispatcherPriority priority)

//no priority is allowed below.
public DispatcherOperation BeginInvoke(Action a)  
于 2013-04-24T07:02:38.867 回答