XAML DataContext и ViewModel Type - PullRequest
       0

XAML DataContext и ViewModel Type

4 голосов
/ 16 декабря 2010

Я использую MVVM для своего приложения, DataContext элементов управления назначено в моем коде c # (не в XAML).

Поэтому элементы управления XAML не имеют представления, для какого типа экземпляра установлено значение DataContext. Следствием этого является отсутствие поддержки рефакторинга и intellisense для связанных свойств моей модели представления в XAML.

Есть ли способ сообщить элементу управления в XAML, с каким типом связан его DataContext?

Поэтому, когда я изменяю имя свойства в моей модели представления или выполняю поиск всех ссылок на это свойство, я хочу, чтобы это свойство в привязках XAML также учитывалось.

Ответы [ 2 ]

3 голосов
/ 16 декабря 2010

Нет поддержки фреймворка, лучшее, что вы можете сделать, это сообщить конструктору VS «форму» DataContext, чтобы он давал вам подсказки для свойств. Если вы хотите сделать свое решение более защищенным от рефакторинга, я бы порекомендовал решение метаданных Daniel T4:

http://www.codeproject.com/KB/codegen/T4Metadata.aspx

Генерирует метаданные для моделей представлений, на которые вы можете ссылаться в XAML:

<StackPanel DataContext="{Binding Source={StaticResource Person}}">
   <TextBlock >Name:</TextBlock>
   <TextBox Text="{Binding Path={x:Static Metadata:PersonMetadata.NamePath}}"/>
</StackPanel>

Колин Э.

2 голосов
/ 16 декабря 2010

Нет, поскольку DataContext может измениться во время выполнения, связывать его с определенным типом не имеет смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...