2009-06-03 76 views
9

好了,所以我对WPF一个一般性的问题。我搞砸了一点与ASP.NET MVC,并在标记有您的视图模型对象的智能感知,所以你不要打错字(我喜欢)。WPF数据绑定智能感知

输入WPF,我爱它,我利用MVVM的做法,而我要做的就是确保我正确地绑定到我的视图模型一个烦人的事。所以,我在XAML类型的东西,那么我要么 1)如果我懒只需运行该应用并点击周围 2)如果我不懒 一)看我是控制当前的DataContext与...合作。 二)进入该ViewModel类看看属性 c)找出我的属性,然后单击回到我的观点,并确保我的拼写是否正确。

我相信你可以看看你的跟踪输出在运行时不正确的绑定,但有什么东西在地平线上,允许在XAML智能感知。该视图需要知道我的ViewModel,所以为什么不在XAML中公开。

我认为这将是很好的IDE为我这样做,这意味着,当我键入“{绑定”它应该上可视化树找到第一个非空的DataContext并显示属性,让我选择一个,那里你有它。

我错过了什么吗?有没有其他的选择。任何见解?

编辑:

关于评论下面有设置在设计时的datacontext例如一种方式

<Window.Resources> 
    <DesignTimeData:DesignTimeCustomers x:Key="designTimeCustomersDS" /> 
</Window.Resources> 

这是从这个博客摘录: http://karlshifflett.wordpress.com/2008/10/11/viewing-design-time-data-in-visual-studio-2008-cider-designer-in-wpf-and-silverlight-projects/

它所做的就是引用XAML中的类。

因此,那么设计师不能利用datacontext上的反射来为您提供该类的所有属性?

+0

在某些方面,WPF真的很闪耀 - 在其他方面它是一个POS。这是其他人之一。 – 2009-06-03 14:13:13

+0

这就是为什么我使用测试来验证所有(好,几乎所有)视图绑定对相应的ViewModels。 – Snowbear 2011-02-28 11:44:00

回答

4

因此,与到位无法在 设计师然后利用上 DataContext的反射来给你所有的 属性这个类的?

如果您在视图上设置d:DataContext,Resharper 6具有此功能并可以向您显示intellisense中的d:DataContext成员。

4

Visual Studio 2010将支持绑定上的智能感知。但是,这仅限于Binding对象本身的属性。例如,在XAML编辑器中键入“{Binding”后,我会在剩余的属性(路径,元素名等)上获得智能感知。

因为数据上下文是在运行时设置的,所以我不认为关于您指定的数据上下文的智能感知类型是可能的。我尝试过在VS 2010中直接在构造函数中设置数据上下文,但没有任何运气。

4

VS 2013:

智能感知与解决的DataContext enter image description here

智能感知与DE​​S点击时间DataContext enter image description here