|
Модератор
|
|||||||||||||||||||||||||||||||
Привязка DP-свойства UserControl к вложенному элементу13.04.2019, 12:03. Показов 6391. Ответов 25
Хотел реализовать одну задачу. Для реализации потребовалось создать привязку DP-свойства UserControl ко вложенному элементу.
До этого привязывал вложенный элемент к свойству UC - проблем не было. В данном случае привязка в элементе используется для другой зависимости (для связи с VM). Поэтому привязку надо создать у свойства UC. И тут я "впал в ступор". Как раньше делал не получается. В XAML это свойство на уровне UC не видно. Делаю привязку в коде - не работает. Чего-то не догоняю. Ниже пример. Привязку надо сделать от свойства Result UC к свойству TextBox.Text элемента "tbResult". В CB UC моя попытка (не рабочая) программного создания привязки. XAML
Кликните здесь для просмотра всего текста
Интерфейс ICalculator
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Также если понадобится основное окно и VM Кликните здесь для просмотра всего текста
Окно
0
|
|||||||||||||||||||||||||||||||
| 13.04.2019, 12:03 | |
|
Ответы с готовыми решениями:
25
Сортировка массива по вложенному элементу Обращение к вложенному элементу span javascript доступ к вложенному в ListView элементу GridView |
|
Модератор
|
||
| 22.09.2025, 20:48 [ТС] | ||
|
Поэтому прямой ответ, только на этот вопрос. Например, есть UserControl подробно представляющий элемент коллекции - условно Person в коллекции People . В Окне есть два региона. В одном представление коллекции ListBox x:Name="lbox" ItemSource="{Binding People}". В другом этот UserControl PersonUC DataContext="{Binding SelectedItem, ElementName=lbox}".Получаем при выборе элемента в ListBox смену DataContext в UserControl.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 22.09.2025, 21:31 | ||
![]() Добавлено через 14 минут а если в словарь ресурсов закинуть DataTemplates (для разных SelectedItem), то мы уже, наверно, не сможем менять DataContext?.. только форматирование и представление данных возможностями шире, чем стилями... Добавлено через 3 минуты а DP-свойства можно задать только UserControl?
0
|
||
|
Модератор
|
|||||||||||||
| 23.09.2025, 04:30 [ТС] | |||||||||||||
|
В UserControl желательно чтобы кроме XAML больше ничего не было. Например такой пример для первого сообщения в этой теме.
Сразу предупреждаю - пример не рабочий. Это просто демонстрация концепции. Конкретно в этом случае (который описывается в первом сообщении), сам подход к реализации задачи не верен. Внешнее свойство кастомного элемента (User Control или Custom Control - не важно), нельзя использовать для внутренней привязки, которая может повлиять на логику работы элемента - это не безопасно. Внешнюю привязку всегда можно изменить (намеренно или по незнанию) по месту использования элемента. Я уже не помню почему мне тогда понадобилась подобное. Но сейчас, при моем нынешнем опыте, эта идея звучит как-то очень криво.
0
|
|||||||||||||
|
Модератор
|
||||||||||||
| 23.09.2025, 20:44 [ТС] | ||||||||||||
|
В такой реализации, уже можно перенести привязку из кода в XAML
Вернее не "знания", а требования задаваемого базовым классом производному. Но проблема безопасности, когда свойство Result может быть перезадано по месту использования DPCalculatorUC, осталось.
0
|
||||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 25.09.2025, 19:46 | ||
|
мне почему-то кажется, что это не проблема, а как раз и задумано было, чтобы можно было переназначать свойства в зависимости от нужного (например, цвет текста при value>1000, условно говоря) - вот и вынесли это DP в отдельный класс... а за пример реализации и использования в XAML - спасибо!.. ? только в каких случаях это DP подключают обычно?.. как по мне, так Styles и Templates и даже Converters - нормальные внутренние (для объекта) свойства, дальше которых уже и придумать нечего (с практической точки зрения) чтобы захотеть подключать из-вне класса ещё и DP за гранью всего, что можно задать и в объекте...
0
|
||
| 29.09.2025, 18:16 [ТС] | |||||||
0
|
|||||||
| 29.09.2025, 18:16 | |
|
Обращение к элементу в userControl
Внутренняя проверка свойства в UserControl UserControl и его публичные свойства Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|