WPF在可视设计器中绑定和使用自定义示例数据

时间:2010-07-21 01:28:11

标签: c# wpf mvvm wpf-controls binding

快速1句总结:我写了一个演示应用程序[在这里下载src] [1],它在Visual Studio Designer中没有正确显示样本数据,我需要帮助。

在C#和WinForms开发了6年多之后,我决定在我当前的项目中使用WPF。我写了一个小的演示应用程序来自学和WPF实验(你可以看到截图[这里] [1])。该应用只需从Google新闻RSS Feed中下载并显示最近的新闻报道。

我的第一次尝试导致了名为“GoogleNewsWidget”的课程。然而,在阅读了MVVM模型之后,我再次尝试构建了“GoogleNewsWidget2”,试图利用更多面向MVVM的架构。我不确定哪种实现最好,因为它们似乎总体上工作正常(虽然我很感激哪些更好的评论,但这不是我的主要问题)。

我的主要问题是无法与Visual Studio Designer一起使用。 GoogleNewsWidget2在xaml直接打开时加载并显示数据,但在嵌入到另一个xaml文件时无法正确显示。在任何一种情况下,GoogleNewsWidget都不会在Designer中显示数据。

任何帮助将不胜感激。同样,源可以下载[这里] [1]。

谢谢,

乔恩

[1]:http://abstract.cs.washington.edu/~jfroehli/reflect/演示应用源代码

PS我的原始帖子有截图的多个超链接,但由于垃圾邮件预防原因,StackOverflow拒绝了其发布。因此,我创建了[1] url,其中包含屏幕截图和源代码链接。如果有人也可以帮我弄清楚如何使用“Markdown”语言进行链接,我将不胜感激。 :)

1 个答案:

答案 0 :(得分:0)

假设VS2010设计师的工作方式与Blend 3相同,则必须提供“虚拟”数据 - 设计人员不会从外部源提取数据。

创建一个实现与数据源(视图模型)相同的接口的对象,并用静态数据填充它。确保它有一个public,no-arg构造函数。

将其定义为控件中的资源,为其提供“DesignData”之类的密钥。

在控件的根元素中,添加属性d:DataContext={DynamicResource DesignData}"

只有在设计师中时,才会将其用作DataContext

相关问题