考虑以下场景:
WPF 视图:
d:DataContext="{d:DesignInstance vm:DesignViewModel, IsDesignTimeCreatable=True}"
ViewModel 位于一个单独的 c# 项目中:
internal class DesignViewModel : ViewModel
{ /* create demo data in ctor */ }
ViewModel 在 AssemblyInfo 中有这个条目:
[assembly: InternalsVisibleTo("WPF.Demo.View")]
XAML 设计器中的错误消息:
- 名称空间“WPF.Demo.View”中不存在名称“DesignViewModel”。
观察:
- 如果我将 DesignViewModel 公开,而不是内部,一切正常。但是,我想把它保留在内部,因为外部消费者真的不应该为设计时的东西而烦恼。
- 如果我将 DesignViewModel 移动到包含视图的同一个程序集中,一切正常。但是,我想将视图和视图模型分开。
- InternalsVisibleTo 设置正确,因为我可以从视图后面的代码中访问它。
问题:如何将 d:DataContext 设置为另一个程序集的内部类?