我只是使用Caliburn.Micro作为MVVM框架创建一个小的WP7项目,但我不确定使项目能够与Expression Blend或Visual Studio设计器配合使用的最佳方法。
人们如何使用Calibun.Micro进行设计?我最好忽略约定并使用传统的绑定机制,以便Blend能够理解视图吗?有没有办法将Caliburn绑定逻辑导入Blend,以便识别约定?
目前我的所有视图都显示为空控件,我需要运行应用程序以了解事物的外观。我认为有一种更好的方式让我失踪。
答案 0 :(得分:3)
**更新:具有约定的设计数据现在内置于CM中。 http://caliburnmicro.codeplex.com/SourceControl/changeset/changes/c5cac07cd755 http://mnajder.blogspot.com/2011/09/design-time-support-for-caliburnmicro.html
我一直在使用MVVM Light中的ViewModelLocator并扩展CM的Screen类,添加了IsInDesignMode属性。 CM当然会忽略任何绑定集的约定,但对于具有模拟数据的设计者来说它是不错的交易。
“有没有办法将Caliburn绑定逻辑导入Blend,以便识别约定?”
Here是CM讨论的一篇文章。
不幸的是,你知道所有的一切 知道。我试图解释这些 混合团队的场景让我们 可以得到适当的可扩展性钩子 在产品中制定约定 在设计时工作,但他们只是 很难理解。他们 不要跟进事情,他们是 一个非常“封闭”的团体内部或 微软。 Silverlight和WPF MVP 不一定有直接访问权限 给他们。你必须是一个混合MVP。 那些往往主要是设计师和 很少有人了解更大的规模 发展甚至是好处 约定可以简单 项目。这样做可能 可能,但需要很多 非常痛苦的工作,并会 可能打破下一个版本 混合。用于可扩展性的API 那是不是很好 记录。然后,还有 使它在Visual中工作的问题 工作室也是如此。目前,我没有 有时间或耐心尝试 拿出一些东西。这太好了 来自的地方 社区将成为一个巨大的 区别。我要继续窃听 在我能的时候,Blend团队。但是,我的 猜测是他们有其他的 顾虑。
我相信Rob在this Hearding Code剧集中谈到了这一点。
This不是用于展示此内容的演示,但我在这段代码中使用MVVM Light中的ViewModelLocator来模拟CM应用中的一些数据。
答案 1 :(得分:0)
目前我的方法是使用Blend中的类数据样本功能,根据我的视图模型生成设计时数据。
你是对的,这确实意味着我没有充分利用Caliburn基于惯例的绑定。但是我仍然将它用于我不需要设计时间经验的元素以及围绕Actions的约定。