1

编辑: ExpandoObject适用于 MEF。我只是有一个语法错误。傻我。


我目前正在使用ExpandoObjectsDelegateCommand我的ViewModels.

private dynamic _commands = new ExpandoObject();
public dynamic Commands
{
    get
    {
        return _commands;
    }
}

private void initializeCommands()
{
    _commands.TestSql(new DelegateCommand(() => testSqlConnection()));
}

这个命令在我的View.

<Button Content="Test Connection" Command={Binding Commands.TestSql}/>

我现在正在更新代码以使用 MEF,它适用于大多数模块。但是,当它ViewModel被组合时,我得到以下异常:

合成产生了一个单一的合成错误。下面提供了根本原因。查看 CompositionException.Errors 属性以获取更多详细信息。

1)“System.Dynamic.ExpandoObject”不包含“TestSql”的定义

此错误是有道理的,因为ExpandoObject没有具有此名称的属性。它应该是动态创建的。有人ExpandoObjects在MEF处理过吗?如果必须,我总是可以摆脱这种ExpandoObject情况,但我想知道是否有一个简单的解决方法可以让这种情况发生。

4

1 回答 1

1

你试过这个吗?:

private void initializeCommands()
{
    _commands.TestSql = new DelegateCommand( () => testSqlConnection());
}
于 2012-09-24T21:38:15.843 回答