WPF Databinding intellisense - PullRequest
       13

WPF Databinding intellisense

9 голосов
/ 03 июня 2009

Хорошо, у меня есть общий вопрос о WPF. Я немного испортил ASP.NET MVC, и в разметке у него есть intellisense для вашего объекта viewmodel, поэтому вы не наберете его неправильно (мне это нравится).

Введите WPF, мне это нравится, я использую подход MVVM, и одна раздражающая вещь, которую я должен сделать, - убедиться, что я правильно привязываюсь к своей модели представления. Так что я набираю что-то в моем xaml, то я либо 1) если я ленивый, просто запустите приложение и нажмите вокруг 2) Если я не ленивый а) Посмотрите текущий DataContext элемента управления, с которым я работаю. б) Перейти к этому классу ViewModel посмотреть на свойства c) Найдите мою собственность, а затем нажмите на мой вид и убедитесь, что я правильно написала его.

Я полагаю, что вы можете посмотреть на результаты трассировки на предмет неправильных привязок во время выполнения, но есть ли что-то на горизонте, чтобы разрешить intellisense в xaml. View должен знать о моей ViewModel, так почему бы не выставить это в xaml.

Я думаю, что для IDE было бы неплохо сделать это для меня, то есть, когда я наберу "{Binding" , это должно пойти вверх по визуальному дереву, найти первый ненулевой DataContext и отобразить свойства, позвольте мне выбрать один и там у вас есть.

Я что-то упустил? Есть ли альтернативы. Любое понимание?

EDIT:

Что касается комментариев ниже, есть способ установить текстовый текст данных во время разработки, например,

<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.

Значит, с этим на месте разработчик не мог использовать отражение в тексте данных, чтобы дать вам все свойства для этого класса?

Ответы [ 5 ]

6 голосов
/ 15 февраля 2015

VS 2013:

IntelliSense с разрешенным DataContext enter image description here

IntelliSense со временем разработки DataContext enter image description here

5 голосов
/ 17 июня 2011

Так что с этим на месте не мог Затем дизайнер использует отражение Datacontext, чтобы дать вам все свойства для этого класса?

Resharper 6 имеет эту функцию и может показывать вам элементы d: DataContext в intellisense, если вы установите d: DataContext в представлении.

4 голосов
/ 03 июня 2009

Visual Studio 2010 будет поддерживать intellisense для привязок. Однако это ограничено свойствами самого объекта Binding. Например, после ввода «{Binding» в редакторе XAML я получаю intellisense для остальных свойств (Path, ElementName и т. Д.).

Я не думаю, что тип intellisense в отношении контекста данных, который вы указали, был бы возможен, так как контекст данных установлен во время выполнения. Я попытался поэкспериментировать в VS 2010, установив контекст данных непосредственно в конструкторе, но безуспешно.

2 голосов
/ 03 июня 2014

Согласно:

http://blogs.msdn.com/b/visualstudio/archive/2013/08/09/xaml-editor-improvements-in-visual-studio-2013.aspx

Visual Studio 2013 xaml Editor теперь поддерживает IntelliSense для привязки данных

1 голос
/ 28 февраля 2011

В Visual Studio 2010 есть компоновщик привязок, который можно включить http://blogs.msdn.com/b/wpfsldesigner/archive/2010/06/14/how-to-enable-using-the-binding-builder-in-wpf-and-silverlight-applications.aspx но вы все еще не получаете intellisense, что странно.

...