17 / 9 / 2
Регистрация: 18.01.2014
Сообщений: 155
|
||||||
1 | ||||||
Не работает set в пользовательском свойстве UserControl28.02.2016, 23:32. Показов 2338. Ответов 5
Метки нет (Все метки)
Здравствуйте.
Сделал свой контрол. Создал ему свойство:
Свойство работает, запоминает значения, НО секция set вызывается только во время создания контрола или при изменении количества элементов в листе. Если просто поменять значения в списке, то set не вызывается и, соответственно, месаж бокс не показывается. Можете подсказать в чем причина и как можно сделать так, чтобы обработчик set вызывался при КАЖДОМ изменении свойства? Неужели нужно писать свой эдитор для такой элементарной задачи?...
0
|
28.02.2016, 23:32 | |
Ответы с готовыми решениями:
5
Выбор поля класса в свойстве UserControl Set в свойстве класса В свойстве описываются только блоки get set, но не реализовываются. Исправить код Не сохраняются значения в свойстве своего UserControl в режиме конструктора форм, когда я его использую в другом проекте |
6452 / 4053 / 1599
Регистрация: 09.05.2015
Сообщений: 9,487
|
|
28.02.2016, 23:44 | 2 |
Если вы меняете сам список где-то в коде, то это свойство и не должно вызываться... Оно вызывается только при присваивании свойству значения... Это нормальное поведение.
0
|
17 / 9 / 2
Регистрация: 18.01.2014
Сообщений: 155
|
|
28.02.2016, 23:47 [ТС] | 3 |
Я изменяю свойство в Свойствах элемента нажимаю кнопочку справа от (Collection)
меняю значение в листе.... и свойство не изменяется. Не программно. В секции set есть еще дополнительная обработка исключений и прочая лабуда, которую я здесь не привел. Но суть в том, что если я изменяю свойство ручками в дизайнере - это все не работает! не знаю почему.
0
|
6452 / 4053 / 1599
Регистрация: 09.05.2015
Сообщений: 9,487
|
|||||||||||
28.02.2016, 23:52 | 4 | ||||||||||
Сообщение было отмечено taancer как решение
Решение
В этом и есть ваша проблема, вы меняете список, а не свойство.
Вот изменение свойства
1
|
17 / 9 / 2
Регистрация: 18.01.2014
Сообщений: 155
|
|
29.02.2016, 00:37 [ТС] | 5 |
Я пробовал уже много вариантов.
И с массивом инт[] и с Dictionary ... Для массива все вроде бы срабатывает, но если менять значения в элементах массива, прямо в окне свойств - опять же, свойство НЕ ИГРАЕТ! для дикшнари изменение свойства вообще не понятно как работает. в общем, засада какая-то. Добавлено через 3 минуты Someone007, я не вызываю изменение свойства программно. Программно как это делать - понятно. тут можно и приватной переменной list попользоваться, если внутри класса это все я знаю. я не понимаю, почему не работает вызов метода именно из среды разработки уже при размещении контрола на форму и настройке свойств через окно Properties Добавлено через 26 минут А... кажется понял. Типа если не меняется ссылка на сам объект, то и свойство не изменяется. Хм. интересный подход. Но совершенно не понятно тогда, как быть с изменениями как раз в свойствах этого объекта?... Добавлено через 12 минут Как можно подписаться на события изменения свойства?... Получается, что полюбому придется писать свой редактор...
0
|
29.02.2016, 00:40 | 6 |
Это посмотрите. Может что-то подскажет.
https://msdn.microsoft.com/ru-... .110).aspx
1
|
29.02.2016, 00:40 | |
29.02.2016, 00:40 | |
Помогаю со студенческими работами здесь
6
Не работает Binding UserControl Не работает свойство зависимости в UserControl UserControl на странице работает, пока он один Не работает биндинг к DependencyProperty моего UserControl Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |