2009-06-03 153 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