编辑: ExpandoObject
可以正常使用MEF。我刚刚遇到语法错误。傻我。
我目前正在使用ExpandoObjects
为DelegateCommand
动态创建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
没有具有此名称的属性。它应该动态创建。有人在MEF中处理过ExpandoObjects
吗?如果必须,我总是可以摆脱ExpandoObject
,但我想知道是否有一个简单的解决办法可以让这种情况发挥作用。
答案 0 :(得分:1)
你试过这个吗?:
private void initializeCommands()
{
_commands.TestSql = new DelegateCommand( () => testSqlConnection());
}