1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 19
|
|||||||||||||||||||||||||||||||
Ошибка - System.Windows.Data Error: 40 : BindingExpression path error: 'name' property not found on 'object' '03.11.2015, 12:21. Показов 9167. Ответов 8
Здравствуйте, у меня есть Главное окно, есть 2 контрола. В 1-ом контроле у меня listBox, во втором label, соединяю я их в MainWindow. Так вот, мне нужно, чтобы в главном окне я нажимал на listBox и у меня имя, выбранное в ListBox-е отображалось в Label.
Список выводит, но при нажатии ничего не происходит, а пишется ошибка System.Windows.Data Error: 40 : BindingExpression path error: 'name' property not found on 'object' ''UserControl1ViewModel' (HashCode=48860040)'. BindingExpression:Path=name; DataItem='UserControl1ViewModel' (HashCode=48860040); target element is 'UserControl1' (Name='me'); target property is 'SelectedName' (type 'String') Кто-нибудь помогите, плз! 1.Главное окно -
есть 2 контрола - 1 Контрол ->
xaml 1 контрола ->
2-ой контрол ->
xaml 2контрола ->
0
|
03.11.2015, 12:21 | |
Ответы с готовыми решениями:
8
BindingExpression path error: 'Data' property not found on 'object' Error BC30466: Namespace or type 'Data' for the Imports 'System.Data' cannot be found Ошибка The specified superclass 'Navigation' contains a parse error, cannot be found on MATLAB's search path, or is shad |
Жуткая тВарЬ
|
||||||
03.11.2015, 14:19 | ||||||
1
|
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 19
|
|
03.11.2015, 23:09 [ТС] | |
Неа, не помогает, теперь вылетает ошибка ->
System.Windows.Data Error: 40 : BindingExpression path error: 'name' property not found on 'object' ''MainWindow' (Name='')'. BindingExpression:Path=name; DataItem='MainWindow' (Name=''); target element is 'UserControl1' (Name='me'); target property is 'SelectedName' (type 'String')
0
|
Жуткая тВарЬ
|
|
04.11.2015, 20:56 | |
Так перенесите свойство в клпасс окна... Вы вообще про привязку читали?
Добавлено через 6 минут Так по ходу я дурак))} перечитал первый пост внимательно.... Вы когда создаёте ваш контрол сразу задаете ему вьюмодель в датаконтексте вот в ней привязка и пытается найти свойство, а надо искать в датаконтексте окна... Т.е. Либо убирайте из контрола датаконтекст, либо делаете привязку как в моем посте выше но только вместо nane пишем datacontext.name
1
|
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 19
|
|||||||||||
05.11.2015, 18:57 [ТС] | |||||||||||
Извиняюсь, но я новичок в этом деле и пытаюсь понять, как это работает.
Вот написал ->
А как тогда должна инфа передаваться в этот 2ой контрол ->
Сейчас из SelectedName(1Контрол) в DataContext.name (Главного окна), затем из ... что куда должно передаться, чтоб отобразилось во 2омКонтроле?
0
|
Жуткая тВарЬ
|
|
05.11.2015, 20:20 | |
Igorian, Вам быпочитать про mvvm, принципы построения слобосвязанных приложений и много чего еще, но это кучу времени потратите, но оно тогг стоит. Так, что если есть время то начните чтение с внедрения зависимостей ибо на этом принципе и паттерне стратегия уйма всего устроено... Ну естественно по wpf тоже надо читать, но не так много...
Я могу Вам накидать пример под Вашу задачу, только опишите что хотите получить от работы программы, применение юзерконтролов у вас не обоснованно и не нужно
1
|
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 19
|
|
05.11.2015, 21:30 [ТС] | |
Спасибо за инфу о том, что нужно почитать. Это я обязательно сделаю.
Насчет необоснованных контролов - да, я согласен, в этом примере они не нужны, но у меня есть приложение, в котором я использую avalonDock. Там нужны контролы, которые будут подгружаться в качестве отдельных окон и которые будут использоваться в разных местах. А этот пример я взял для того, чтобы понять, как это дело работает. Я делал все это дело без viewModel, все получилось, а вот когда я использую viewModel, вот ничего и не получается. Задача у меня такая - Есть 2 Контрола: - 1Контрол - Таблица listBox/ListView(В ней выбирается строка для отображения во втором контроле), 2Контрол - Label, в который записывается просто имя , выбранное из первого контрола. И все это связано через MainWindow. Потом я вместо имени буду данные из базы закидывать и подружать их в другие таблицы, а вот сейчас хотябы на самом простом примере понять.
0
|
Жуткая тВарЬ
|
|
06.11.2015, 10:17 | |
В общем накидал пример, единственное, что я решил сделать с использованием аггрегатора событий из библиотеки призм (короче надо устанавливать через Nuget пакет Prism.PubSubEvents) - зато он убирает кучу всякой хрени в которой можно запутаться (в частности излишнюю управляющую вьюмодель и колбэки с подписками)
Так же прощу обратить внимание, что есть специальный класс Boot в котором назначаются вьюмодели для наших контролов - ТАК ДЕЛАТЬ НЕЛЬЗЯ - но поскольку я не стал нагружать проект еще и контейнером внедрения зависимости, мне показалось, что такой подход будет понятнее... AggregateMVVM.zip П.С. На самом деле "по настоящему" все делается немножко сложнее (и в тоже время легче если знаешь материал), но для этого надо знать хотя бы про Внедрение зависимостей в .Net и несколько паттернов
1
|
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 19
|
|
07.11.2015, 10:04 [ТС] | |
amarf, Спасибо огромное за написанный вами пример!
Буду разбираться...
0
|
07.11.2015, 10:04 | ||||||
Помогаю со студенческими работами здесь
9
Привязать данные к кнопке System.Windows.Data Error: 40 Ошибка Run-time error '438': Object doesn't support this property or method при транспонировании матрицы Ошибка [Fault] exception, information=TypeError: Error #1009: Cannot access a property or method of a null object reference Microsoft Visual Studio: Code generation for property 'BackgroundImage' failed. Error was: 'Object reference not set to an instance of an object.' Ошибка Compiler Error Message: CS0118: 'System.Web.UI.WebControls.DataListItem.DataItem' denotes a 'property' where a 'method' was expected Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. )
В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
|
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
|
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
|
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
|
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
|
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
|
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
|
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
|
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
|
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
|