При разработке WPF
MVVM
приложения у нас в разметке XAML
повсеместно используется Binding
, как получить удобство разработки в виде подсказок IntelliSense
при вводе названий свойств из VM
? Ведь, если мы ошибемся хотя бы в одном символе, привязка работать не будет, поэтому приходится часто переключаться между файлами проекта и копировать имена (а если VM
собрана в библиотеку и исходника вообще у нас нет?).
Причем если в разметке указать что-то типа:
<Window.DataContext>
<local:MainVM/>
</Window.DataContext>
(и собрать проект) то IntelliSense
начинает помогать.
Но я ведь хочу быть хорошим разработчиком и, по рекомендациям, такую зависимость делать не хочу (и мне это в общем-то понятно).
Какие вы знаете и/или используете способы для включения подсказок в такой ситуации (есть ли они вообще)?
Решение удалось найти самостоятельно. Подсмотрел здесь: https://stackoverflow.com/questions/29394295/intellisense-for-data-binding-not-working
Выглядит оно так:
<Window x:Class="WpfTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfTest"
d:DataContext="{d:DesignInstance Type=local:MainVM}"
mc:Ignorable="d" ...
т.е. в XAML
должно быть подключено пространство имен xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
(оно подключено по умолчанию при создании нового окна) и тогда можно воспользоваться фичей: d:DataContext="{d:DesignInstance Type=local:MainVM}"
, при этом если указать параметр IsDesignTimeCreatable=True
, то студия будет пытаться создать экземпляр указанной VM
прямо во время работы в дизайнере и наполнять форму реальными данными (что иногда может замедлить работу дизайнера или даже повалить его)
У меня есть панель с элементами внутри нее, у панели есть скроллинг по горизонтали и вертикалиСобытие OnScroll панели происходит, если кликнуть...
Всем приветРаньше я использовал стандартные checkbox теперь я хочу начать использовать Bootstrap multi select
Необходимо написать небольшое приложение, которое работает с почтовыми ящиками в Exchange Server - Создает/изменяет записи в календаре, синхронизирует...
На данный вопрос уже ответили: