1 / 1 / 0
Регистрация: 31.03.2013
Сообщений: 69
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
.NET 4.x DependencyProperty + Binding в WPF10.06.2013, 16:07. Показов 4280. Ответов 12
Метки нет (Все метки)
Здравствуйте.
Решил попробовать поработать со свойствами зависимостей и наткнулся на ткую штуку - не понимаю как их заставить работать. У меня есть класс, внутри которого ссылки на другие классы, а в них находятся (теоретически) свойства зависимостей, которые должны хранить в себе строки. Как-то так:
Раньше я делал так:
В свойстве подкласса я тоже сделал свойство зависимостей:
0
|
10.06.2013, 16:07 | |
Ответы с готовыми решениями:
12
Не работает Binding для DependencyProperty WPF MVVM. DependencyProperty не доступен в собственном xaml WPF MVVM View и ViewModel или UserControl и DependencyProperty "Binding" можно задать только в параметре DependencyProperty объекта DependencyObject." |
155 / 155 / 30
Регистрация: 19.10.2009
Сообщений: 319
|
|||||||||||
11.06.2013, 06:59 | 2 | ||||||||||
А что и где должно отображаться - здесь не приведено строк, которые что-то отображали б. Если их не сделать, то, конечно, не будет. Есть два варианта, один, возможно, чем-то и проще, если уж используется UserControl:
0
|
1 / 1 / 0
Регистрация: 31.03.2013
Сообщений: 69
|
|
11.06.2013, 14:45 [ТС] | 3 |
Разобрался почему ичего не апдейтлось - оказалось, что я юзал разные экземпляры класса в каждом отдельно взятом XAML. Теперь у меня возник резонный вопрос - как сделать, чтобы из разных страниц можно было достучаться до одного и того же экземпляра класса, чтобы XAML не создавал кучу экземпляров одного и того же.
0
|
176 / 93 / 10
Регистрация: 27.05.2013
Сообщений: 290
|
|
11.06.2013, 15:54 | 4 |
Используй Resources программы
0
|
1 / 1 / 0
Регистрация: 31.03.2013
Сообщений: 69
|
|
11.06.2013, 16:29 [ТС] | 5 |
Dexiny,
А можно подробнее?
0
|
176 / 93 / 10
Регистрация: 27.05.2013
Сообщений: 290
|
|
11.06.2013, 16:40 | 6 |
Тебе что именно надо сделать общим? Если XAML-объекты, то в файлике App.xaml добавь ресурсы или словари ресурсов. Если что-то другое - Свойства проекта - Resources
0
|
1 / 1 / 0
Регистрация: 31.03.2013
Сообщений: 69
|
|
11.06.2013, 16:57 [ТС] | 7 |
Мне нужно каким-то образом сделать класс Localization общим для всех страниц, которые к нему обращаются. Я его наследую от userControl и подключаю, как указал выше. Так вот каждый раз при обращении к странице, создаётся новый экземпляр этого класса, а мне нужно, чтобы они обращались всегда к одному и тому же и чтобы при этом я не потерял возможность биндиться через elementName на свойства этого класса.
0
|
176 / 93 / 10
Регистрация: 27.05.2013
Сообщений: 290
|
|
11.06.2013, 18:43 | 8 |
пропиши объект в ресурсы и бинди на ресурс
0
|
1 / 1 / 0
Регистрация: 31.03.2013
Сообщений: 69
|
|
11.06.2013, 19:15 [ТС] | 9 |
Если я так сделаю, я потеряю возможность биндиться к свойствам объекта. Можно будет просто сделать "{Binding StaticResource ...}" Или я не прав. Если не прав, то можно пример?
0
|
176 / 93 / 10
Регистрация: 27.05.2013
Сообщений: 290
|
|
11.06.2013, 19:35 | 10 |
Сообщение было отмечено Ev_Hyper как решение
Решение
лови
2
|
1 / 1 / 0
Регистрация: 31.03.2013
Сообщений: 69
|
|
11.06.2013, 19:42 [ТС] | 11 |
Супер, всё работает, только у меня ещё один вопрос.
Если мне нужно в codebehind изменить какое-то свойство внутри этого класса, то получается, что я уже не попаду на тот же его экземпляр, который был создан в ресурсах. Как мне быть в таком случае? Или может быть есть возможность как-то выцепить текущий экземляр?
0
|
176 / 93 / 10
Регистрация: 27.05.2013
Сообщений: 290
|
||||||
11.06.2013, 19:46 | 12 | |||||
Для моего кода, обращение к ресурсу (ну и изменить его можно)
0
|
1 / 1 / 0
Регистрация: 31.03.2013
Сообщений: 69
|
|
11.06.2013, 19:52 [ТС] | 13 |
Это гениально! Всё работает, как я хотел. Спасибо огромное за помощь.
0
|
11.06.2013, 19:52 | |
11.06.2013, 19:52 | |
Помогаю со студенческими работами здесь
13
Binding wpf [WPF] Binding ElementName WPF+Binding+IPropertyChange WPF DataGrid Binding Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |