- Мы можем привязываться не только полностью к Collection View, но также и к "текущему" элементу коллекции и к определенному полю внутри коллекции. Возможны вложенные коллекции и привязка к их View. "Текущий элемент" - например, последний выделенный
- DataTemplate - как именно отображать элемент Collection View в UI. Позволяет не только выбрать информацию к отображению, но и "сделать красиво" (причем по-разному в зависимости от параметров отображаемого элемента коллекции). То, что не зависит от параметров отображаемого элемента, лучше настраивать через настройки UI в целом
- Возможно выбирать конкретный Template в зависимости от параметров элемента Collection View (и отображать элементы _совсем_ по-разному), но это уже делается в коде
- ValidationRule - проверка того, что введенные в элемент UI данные можно конвертировать в привязанную к этому элементу переменную. Есть стандартные, можно создавать свои. Как именно выглядит уведомление об ошибке - тоже можно задавать
- Валидация может быть как до конвертации строки в значение (например, что в строке число), так и после (например, что это число в указанных пределах). Также может быть какая-то валидация после присвоения значения привязанной переменной
- По умолчанию ListBox, привязанный к коллекции, берет от элемента .ToString, и иногда достаточно переопределить ToString
- Реально дофига всего можно сделать с Data Binding именно через XAML, не залезая в код. Например, привязаться к Enum. Или задать конкретные параметры для функции валидации
Если создается пользовательский класс, объект которого к чему-то привязывается, то:
- Если будет передача данных от объекта, то нужны уведомления об изменениях
- Свойства объекта, используемые при привязке, должны быть public
- Невозможно привязаться к полям
MSDN можно переключить на американскую версию. Но для этого нужно прокрутить до самого низа страницы. Там слева будет переключатель.
- Если вы пытаетесь создать объект не существующего класса, то VS2015 предложит вам создать этот класс и даже покажет превью
- По буквосочетанию In подсказка VS2015 выдаст не только Input, но и LoadInput. Но не Window, потому что ориентируется на то, что значимые слова в имени переменной/функции начинаются с больших букв. Иногда можно набрать только большие буквы и получить функцию целиком (OSI -> OpenStandardInput)
- Ctrl делает подсказку от IntelliSense прозрачной
- В WPF возможен Binding коллекций. Для этого нужен CollectionView. Сначала в ресурсах нужно привязать CollectionViewSource к коллекции (и дать ему имя), потом параметр ItemsSource элемента интерфейса (например, ListBox) к CollectionViewSource (с конкретным именем). Еще у коллекций есть View по умолчанию, можно привязываться просто к нему. Если мы сортируем/фильтруем ListBox, то это влияет на привязанный View, но не на саму коллекцию
Продолжаем:
- Если нужно посмотреть на текст вызываемой функции, можно не переходить к файлу, а посмотреть его во "врезке" (мысль интересная, но я постоянно !нечаянно! попадаю по этому варианту, а не по стандартному переходу к файлу, и это меня бесит)
- Можно вместо скроллбара сделать своеобразный "силуэт файла" - с моим "я не помню, какая это была страница, но форма текста там была вот такая!" это может быть полезно... но с моей длиной файлов с кодом - скорее вредно))
- Поиск через Navigate To работает с учетом релевантности. Может быть полезно. Но может быть пц нелогично
- Есть окно, где можно в режиме "написал - выполнил" выполнять отдельные кусочки команд - усложненная версия возможности посмотреть значение конкретного выражения на брекпойнте. Может быть полезно при дебаге (гуглить по словам Immediate Window)
- Часть сообщений об ошибках вылезает на этапе редактирования, а не только при компиляции
Вообще в основном я работаю в Qt Creator и пишу на C++. Но бывает, что мне нужно (для определенной задачи или для определенного проекта) мигрировать под Visual Studio, а то и вообще на C#. Вот сейчас как раз такой случай.
Причем если на плюсах под Visual Studio я некоторое время назад уже писала (но студия была 2010 и 2013), то на шарпе я писала дааавноооо. А тут еще ощущение, что пользовательский интерфейс VS2015 очень сильно отличается от пользовательского интерфейса VS2013.
С методом ненаучного тыка у меня в последние дни плохо, поэтому, не сумев сразу сделать то, что было надо и обнаружив несколько вроде бы и в общих чертах понятных, но все равно каких-то для меня загадочных фич, я нагло спиратила добыла на просторах интернета книжку по VS2015 и потихоньку ее читаю заодно пополняю свой англоязычный словарный запас*. При этом иногда нахожу такое, что бы вряд ли нашла просто тыкая кнопочки. И что наверняка забуду, если не законспектировать.
В общем, пока читаю про пользоавтельский интерфейс VS2015, из интересного уже почерпнула следующее:
- Просто горячих клавиш и сочетаний клавиш с Ctrl и прочим Alt там уже жестоко не хватает, поэтому, скажем, для того, чтобы закомментить блок кода нужно нажать сначала Ctrl+K, потом Ctrl+C
- Если код выровненный и в нескольких строчках подряд должен быть одинаковый кусок текста в одном месте (например, сразу несколько переменных нам надо срочно превратить из float в double), то можно "выделить вертикальный блок кода" и сразу удалить его содержимое или вбить один и тот же текст в нескольких строчках
*мой англоязычный словарный запас - это отдельное нечто, потому что он складывается в основном из форумов по программированию и фэнтези в различных проявлениях (книги, рулбуки, комп.игры).
Лучшее
Материалы сайта предназначены для лиц старше 16 лет (16+)