Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
IValueConverter и статический класс
|
|||
|---|---|---|---|
|
#18+
Обычно, чтоб отобразить некий объект в нужном нам виде мы используем конвертеры при связывании. для этого мы создаем класс наследованный от интерфейса IValueConverter, затем размещаем его в ресурсах и используем с помощью разметки {StaticResource <имя статического класса>}. Но, если использовать UserControl, который будет размещаться внутри ListBox другого UserControl'а, то я не могу создать общий ресурс для всех дочерних элементов списка. Если я задам конвертер в ресурсах дочернего контрола списка, получится, что для каждого элемента списка будет создан объект конвертера, а в случаю отсутствия виртуализации, то будет созданы 1000и этих конвертеров. Нельзя ли просто создать конвертер в статическом классе, объявить для него статическое поле и обращаться через {x:Static <поле статического класс с конвертером>} и не париться? аля: DependencyProperty1="{Binding Property1, Converter={x:Static nmsp:Class1.Converter1}}" Чем это чревато, почему это может быть плохо? хочу мнения умный людей :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 11:13 |
|
||
|
IValueConverter и статический класс
|
|||
|---|---|---|---|
|
#18+
А откуда данные, что он будет создан для каждого элемента? Что-то мне представляется, что он создастся для экземпляра BindingExpression, т. е. по одному на каждый binding. По крайней мере я не помню, чтоб конвертор вызывал проблемы для больших коллекций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 13:40 |
|
||
|
IValueConverter и статический класс
|
|||
|---|---|---|---|
|
#18+
Ilya81, он будет создан для каждого элемента, так как в каждом UserControl'е (дочернем элементе списка) будет экземляра класса конвертера в <UserControl.Resources>, так как сослаться на ресурс родительского элемента в UserControl не получится. Так же отсутствуют <App.Resources> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 13:50 |
|
||
|
IValueConverter и статический класс
|
|||
|---|---|---|---|
|
#18+
Roman MejtesОбычно, чтоб отобразить некий объект в нужном нам виде мы используем конвертеры при связывании. для этого мы создаем класс наследованный от интерфейса IValueConverter, затем размещаем его в ресурсах и используем с помощью разметки {StaticResource <имя статического класса>}.Предпочитаю описывать конвертеры в виде расширений разметки. Базовый класс Конвертер Пример использования: Код: xml 1. Roman MejtesНо, если использовать UserControl, который будет размещаться внутри ListBox другого UserControl'а, то я не могу создать общий ресурс для всех дочерних элементов списка. Если я задам конвертер в ресурсах дочернего контрола списка, получится, что для каждого элемента списка будет создан объект конвертера, а в случаю отсутствия виртуализации, то будет созданы 1000и этих конвертеров.Не думаю, что "клоны" конвертеров в данной ситуации окажутся тонким местом. Если конечно в них не выделяется много памяти, что мало вероятно. Roman MejtesНельзя ли просто создать конвертер в статическом классе, объявить для него статическое поле и обращаться через {x:Static <поле статического класс с конвертером>} и не париться? аля: DependencyProperty1="{Binding Property1, Converter={x:Static nmsp:Class1.Converter1}}" Чем это чревато, почему это может быть плохо? хочу мнения умный людей :)Ничего плохого в этом не вижу, если конвертерам не требуется хранить состояние. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 17:41 |
|
||
|
IValueConverter и статический класс
|
|||
|---|---|---|---|
|
#18+
Roman Mejtes, Не знаю как Вы не смогли создать общий стиль. Но вы совсем забыли, что при размещении стиля в самом первом паренте (в том числе и конвертор, так как он объявляется в ресурсах), у вас автоматом увидят его все его чайлды (даже из разных сборок). Вопрос только в том как вы в парентовый ресурс добавили стили (правильно или нет). Дизайнер студии будет ругаться, что не видит ресурс, но смело запустив приложение, вы увидите, что все гуд. 100% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2015, 22:25 |
|
||
|
|

start [/forum/topic.php?fid=21&gotonew=1&tid=1440928]: |
0ms |
get settings: |
6ms |
get forum list: |
7ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
7ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 5ms |
| total: | 109ms |

| 0 / 0 |
