Re[41]: Мне аж, право, неловко...
От: Cyberax Марс  
Дата: 14.03.09 17:18
Оценка:
Здравствуйте, gandjustas, Вы писали:

C>>Тебе никогда не встречался случай, что байндинг имеет недостаточную мощность?

G>В WPF — нет. зато я знаю множество людей, которые не знают\не понимают возможностей байндинга в WPF.
Поздравляю. А вот мне встречался — сложные динамические формы со сложным байндингом (с циклическими связями, меняющимися, возможно зацикливающимися или частично некорректными). Тот dependency solver, который есть в WPF — не справляется и близко.

C>>У меня такие случаи попадаются постоянно. Я пока не знаю системы байндинга, которая была бы достаточно мощной для моих целей.

G>Может стоит повнимательнее изучить существующие?
Изучил.

C>>Триггеры предназначены, прежде всего, для простых действий, типа установки фокуса в нужное место при нажатии или запуска анимации.

G>Это кто такую глупость сказал? Триггер может запустить Storyboard, а он в свою очередь может сделать парктически все.
И чем это отличается от простой передачи события? Ответ: ничем.

Ещё раз повторяю: всякая красивая анимация мне нафиг не нужна. Я прекрасно знаю, как делать всякие мигающие кнопки в WPF. Неинтересно.

C>>У меня всё сложнее.

G>Также сложно как с embedded LDAP?
G>Мне кажется что вы очередной раз выдумываете сложности.
Нет. Такая реальность — нужно делать интерфейсы к сложным legacy-системам.

G>>>"Использовал" надо заменить на "видел".

C>>Нет, именно использовал. В первый раз ещё в 2007-м, если не ошибаюсь (до появления XAML-редактора).
G>А последний?
Где-то перед Новым Годом — коннектор делал для одних клиентов.
Sapienti sat!
Re[42]: Мне аж, право, неловко...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.09 19:08
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, gandjustas, Вы писали:


C>>>Тебе никогда не встречался случай, что байндинг имеет недостаточную мощность?

G>>В WPF — нет. зато я знаю множество людей, которые не знают\не понимают возможностей байндинга в WPF.
C>Поздравляю. А вот мне встречался — сложные динамические формы со сложным байндингом (с циклическими связями, меняющимися, возможно зацикливающимися или частично некорректными). Тот dependency solver, который есть в WPF — не справляется и близко.
А человек, который должен с этими формами работать, он справлялся?
Кстати попрдробнее про циклические связи можно? Как оно вообще работает?

ИМХО очередная надуманная сложность как embeddep LDAP.

C>>>У меня такие случаи попадаются постоянно. Я пока не знаю системы байндинга, которая была бы достаточно мощной для моих целей.

G>>Может стоит повнимательнее изучить существующие?
C>Изучил.
Судя по постам — не совсем.

C>>>Триггеры предназначены, прежде всего, для простых действий, типа установки фокуса в нужное место при нажатии или запуска анимации.

G>>Это кто такую глупость сказал? Триггер может запустить Storyboard, а он в свою очередь может сделать парктически все.
C>И чем это отличается от простой передачи события? Ответ: ничем.
Передачи события кому?

C>>>У меня всё сложнее.

G>>Также сложно как с embedded LDAP?
G>>Мне кажется что вы очередной раз выдумываете сложности.
C>Нет. Такая реальность — нужно делать интерфейсы к сложным legacy-системам.
И почему эти интерфейсы должны быть сложными?
Re[43]: Мне аж, право, неловко...
От: Cyberax Марс  
Дата: 14.03.09 19:13
Оценка:
Здравствуйте, gandjustas, Вы писали:

C>>Поздравляю. А вот мне встречался — сложные динамические формы со сложным байндингом (с циклическими связями, меняющимися, возможно зацикливающимися или частично некорректными). Тот dependency solver, который есть в WPF — не справляется и близко.

G>А человек, который должен с этими формами работать, он справлялся?
С трудом. Для того софт и пишем.

G>Кстати попрдробнее про циклические связи можно? Как оно вообще работает?

Простой пример — два поля. В одно поле вводят число, другое поле показывает процент от этого числа, оба поля редактируемые. Соответственно, если пользователь меняет одно поле, то должно поменяться другое.

Или другой пример — колонка чисел и сумма. Можно редактировать отдельные поля и поле суммы. При редактировании поля суммы по хитрым правилам должны редактироваться слагаемые. Причём слагаемые могут меняться динамически (например, изменили сумму до $100 — и одно поле заменилось другим, а все значения пересчитались, а если изменили до $110 — это поле снова исчезнет).

G>ИМХО очередная надуманная сложность как embeddep LDAP.

Ничуть.

G>>>Это кто такую глупость сказал? Триггер может запустить Storyboard, а он в свою очередь может сделать парктически все.

C>>И чем это отличается от простой передачи события? Ответ: ничем.
G>Передачи события кому?
Обработчику событий.

G>>>Также сложно как с embedded LDAP?

G>>>Мне кажется что вы очередной раз выдумываете сложности.
C>>Нет. Такая реальность — нужно делать интерфейсы к сложным legacy-системам.
G>И почему эти интерфейсы должны быть сложными?
Так уж получается.
Sapienti sat!
Re[44]: Мне аж, право, неловко...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.09 19:31
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

G>>Кстати попрдробнее про циклические связи можно? Как оно вообще работает?

C>Простой пример — два поля. В одно поле вводят число, другое поле показывает процент от этого числа, оба поля редактируемые. Соответственно, если пользователь меняет одно поле, то должно поменяться другое.
Two-way binding + converter вы считаете такой сложностью? WPF с этим спокойно справляется.

C>Или другой пример — колонка чисел и сумма. Можно редактировать отдельные поля и поле суммы. При редактировании поля суммы по хитрым правилам должны редактироваться слагаемые. Причём слагаемые могут меняться динамически (например, изменили сумму до $100 — и одно поле заменилось другим, а все значения пересчитались, а если изменили до $110 — это поле снова исчезнет).

Это уже MVVM использовать надо, и байндиться на свойства ViewModel.

Та и другая задача вполне спокойно решается в WPF.
Re[42]: Мне аж, право, неловко...
От: kuj  
Дата: 14.03.09 21:40
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>Тебе никогда не встречался случай, что байндинг имеет недостаточную мощность?

G>>В WPF — нет. зато я знаю множество людей, которые не знают\не понимают возможностей байндинга в WPF.
C>Поздравляю. А вот мне встречался — сложные динамические формы со сложным байндингом (с циклическими связями, меняющимися, возможно зацикливающимися или частично некорректными). Тот dependency solver, который есть в WPF — не справляется и близко.

Пример "циклической связи" в студию.


C>>>У меня такие случаи попадаются постоянно. Я пока не знаю системы байндинга, которая была бы достаточно мощной для моих целей.

G>>Может стоит повнимательнее изучить существующие?
C>Изучил.
Не заметно.
Re[45]: Мне аж, право, неловко...
От: Cyberax Марс  
Дата: 14.03.09 22:04
Оценка: :)
Здравствуйте, gandjustas, Вы писали:

C>>Простой пример — два поля. В одно поле вводят число, другое поле показывает процент от этого числа, оба поля редактируемые. Соответственно, если пользователь меняет одно поле, то должно поменяться другое.

G>Two-way binding + converter вы считаете такой сложностью? WPF с этим спокойно справляется.
А теперь идём дальше. Например, нужно учитывать, что если мы редактируем деньги, то нам нужно иногда округлять их до десятков центов.

Т.е. имеем сумму $5.00 в поле денег, и 100% в поле ввода процентов. Меняем 100% на 73% — должно получиться $3.60 ($3.65 округлённый в меньшую сторону), так что процент должен скомпенсироваться до 72%. Или наоборот, нужно иметь целые проценты, но при редактировании суммы дробные проценты нужно округлять.

И иногда это нужно делать через цепочку промежуточных преобразований.

В простых случаях можно пробовать вызывать из ConvertBack из Convert (и наоборот), но если нужно что-то более сложное — то упс. Ну и сам интерфейс конвертера не особо приятный. Мало информации о контексте преобразования и его истории, нет чётких механизмов ветирования и отката изменений до вычисленного корректного состояния и т.п.

Плюс, многие формулы валидации работают в одном направлении (и решать их в обратном направлении — совсем недосуг). Мне для binding'а пришлось вообще прикручивать логический движок, а ты говоришь "простой two-way"...

Мне пока единственное что не нравится — у меня биективные преобразования ничем не проверяются (т.е. из-за глюков они бывают и не биективными), поэтому и хочется механизм линз прикрутить и переделать на них большую часть вычислений. Единственное, что пока не разобрался что делать с решателем ограничений.

C>>Или другой пример — колонка чисел и сумма. Можно редактировать отдельные поля и поле суммы. При редактировании поля суммы по хитрым правилам должны редактироваться слагаемые. Причём слагаемые могут меняться динамически (например, изменили сумму до $100 — и одно поле заменилось другим, а все значения пересчитались, а если изменили до $110 — это поле снова исчезнет).

G>Это уже MVVM использовать надо, и байндиться на свойства ViewModel.
И она будет повторять визуальную модель.
Sapienti sat!
Re[44]: Мне аж, право, неловко...
От: kuj  
Дата: 14.03.09 22:12
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>Поздравляю. А вот мне встречался — сложные динамические формы со сложным байндингом (с циклическими связями, меняющимися, возможно зацикливающимися или частично некорректными). Тот dependency solver, который есть в WPF — не справляется и близко.

G>>А человек, который должен с этими формами работать, он справлялся?
C>С трудом. Для того софт и пишем.

G>>Кстати попрдробнее про циклические связи можно? Как оно вообще работает?

C>Простой пример — два поля. В одно поле вводят число, другое поле показывает процент от этого числа, оба поля редактируемые. Соответственно, если пользователь меняет одно поле, то должно поменяться другое.
И где здесь циклическая связь?

Обычный двунаправленный байндинг на два поля. При обновлении одного из них контроллер (ViewModel) обновляет второе.

C>Или другой пример — колонка чисел и сумма. Можно редактировать отдельные поля и поле суммы. При редактировании поля суммы по хитрым правилам должны редактироваться слагаемые. Причём слагаемые могут меняться динамически (например, изменили сумму до $100 — и одно поле заменилось другим, а все значения пересчитались, а если изменили до $110 — это поле снова исчезнет).


Ты, похоже, вообще не понимаешь что такое WPF, что такое MVVM... ппц Лучше не пиши больше — не позорься так.
Re[46]: Мне аж, право, неловко...
От: User239 Россия  
Дата: 14.03.09 22:36
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, gandjustas, Вы писали:


C>>>Простой пример — два поля. В одно поле вводят число, другое поле показывает процент от этого числа, оба поля редактируемые. Соответственно, если пользователь меняет одно поле, то должно поменяться другое.

G>>Two-way binding + converter вы считаете такой сложностью? WPF с этим спокойно справляется.
C>А теперь идём дальше. Например, нужно учитывать, что если мы редактируем деньги, то нам нужно иногда округлять их до десятков центов.

C>Т.е. имеем сумму $5.00 в поле денег, и 100% в поле ввода процентов. Меняем 100% на 73% — должно получиться $3.60 ($3.65 округлённый в меньшую сторону), так что процент должен скомпенсироваться до 72%. Или наоборот, нужно иметь целые проценты, но при редактировании суммы дробные проценты нужно округлять.


C>И иногда это нужно делать через цепочку промежуточных преобразований.


Если честно, совсем не понимаю вашей проблемы. Как уже неоднократно упоминали, MVVM в руки, вся необходимая логика сосредоточена в классах View Model, проценты, налоги, округления, что хотите. При этом все вопросы отображения берёт на себя декларативный xaml. Какие возникают сложности именно с визуализацией ваших данных?
Re[46]: Мне аж, право, неловко...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.09 22:50
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, gandjustas, Вы писали:


C>>>Простой пример — два поля. В одно поле вводят число, другое поле показывает процент от этого числа, оба поля редактируемые. Соответственно, если пользователь меняет одно поле, то должно поменяться другое.

G>>Two-way binding + converter вы считаете такой сложностью? WPF с этим спокойно справляется.
C>А теперь идём дальше. Например, нужно учитывать, что если мы редактируем деньги, то нам нужно иногда округлять их до десятков центов.

C>Т.е. имеем сумму $5.00 в поле денег, и 100% в поле ввода процентов. Меняем 100% на 73% — должно получиться $3.60 ($3.65 округлённый в меньшую сторону), так что процент должен скомпенсироваться до 72%. Или наоборот, нужно иметь целые проценты, но при редактировании суммы дробные проценты нужно округлять.


C>И иногда это нужно делать через цепочку промежуточных преобразований.


В таком случае все нетривиальные операции надо проделывать через ViewModel.

C>В простых случаях можно пробовать вызывать из ConvertBack из Convert (и наоборот), но если нужно что-то более сложное — то упс. Ну и сам интерфейс конвертера не особо приятный. Мало информации о контексте преобразования и его истории, нет чётких механизмов ветирования и отката изменений до вычисленного корректного состояния и т.п.


Никогда бы не подумал что простому байндингу нужно "чёткий механизм ветирования и отката изменений до вычисленного корректного состояния и т.п".
делайте это во ViewModel.

C>Плюс, многие формулы валидации работают в одном направлении (и решать их в обратном направлении — совсем недосуг). Мне для binding'а пришлось вообще прикручивать логический движок, а ты говоришь "простой two-way"...


C>Мне пока единственное что не нравится — у меня биективные преобразования ничем не проверяются (т.е. из-за глюков они бывают и не биективными), поэтому и хочется механизм линз прикрутить и переделать на них большую часть вычислений. Единственное, что пока не разобрался что делать с решателем ограничений.


Вы уже раза три подтвердили что неумете использовать WPF. Хватит уже народ смешить.

Как я и говорил что не бывает случаев недостаточной мощности байндинга, бавают случаи неумения его использовать.

C>>>Или другой пример — колонка чисел и сумма. Можно редактировать отдельные поля и поле суммы. При редактировании поля суммы по хитрым правилам должны редактироваться слагаемые. Причём слагаемые могут меняться динамически (например, изменили сумму до $100 — и одно поле заменилось другим, а все значения пересчитались, а если изменили до $110 — это поле снова исчезнет).

G>>Это уже MVVM использовать надо, и байндиться на свойства ViewModel.
C>И она будет повторять визуальную модель.
А что такое визуальная модель?
Может посмотрите видео по ссылке которую Qbit давал?
Только не надо рассказывать то вы знаете что такое MVVM — это не так.
Re[47]: Мне аж, право, неловко...
От: Cyberax Марс  
Дата: 15.03.09 01:13
Оценка:
Здравствуйте, User239, Вы писали:

C>>И иногда это нужно делать через цепочку промежуточных преобразований.

U>Если честно, совсем не понимаю вашей проблемы. Как уже неоднократно упоминали, MVVM в руки, вся необходимая логика сосредоточена в классах View Model, проценты, налоги, округления, что хотите. При этом все вопросы отображения берёт на себя декларативный xaml. Какие возникают сложности именно с визуализацией ваших данных?
Проблема в том, что тогда байндинг выражаются в тупой привязке к свойствам. И тогда нет особой разницы — что ставить контролу имя и писать его в атрибуте свойства, что писать в байндинге имя свойства. За исключением того, что прямой доступ к свойствам всё же более гибкий.
Sapienti sat!
Re[47]: Мне аж, право, неловко...
От: Cyberax Марс  
Дата: 15.03.09 01:18
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Никогда бы не подумал что простому байндингу нужно "чёткий механизм ветирования и отката изменений до вычисленного корректного состояния и т.п".

G>делайте это во ViewModel.
Внимание, вопрос: а нафиг мне нужен тогда байндинг, если он вырождается в 1-1 привязку к свойствам специальных синтетических объектов?
Sapienti sat!
Re[48]: Мне аж, право, неловко...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.03.09 06:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, gandjustas, Вы писали:


G>>Никогда бы не подумал что простому байндингу нужно "чёткий механизм ветирования и отката изменений до вычисленного корректного состояния и т.п".

G>>делайте это во ViewModel.
C>Внимание, вопрос: а нафиг мне нужен тогда байндинг, если он вырождается в 1-1 привязку к свойствам специальных синтетических объектов?
А как другим способом обеспечить двустороннюю передачу данным между свойством "специального синтетического объекта" (который все нормальные люди называют ViewModel), без написани тонны инфраструктурного кода.
Re[48]: Мне аж, право, неловко...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.03.09 06:20
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, User239, Вы писали:


C>>>И иногда это нужно делать через цепочку промежуточных преобразований.

U>>Если честно, совсем не понимаю вашей проблемы. Как уже неоднократно упоминали, MVVM в руки, вся необходимая логика сосредоточена в классах View Model, проценты, налоги, округления, что хотите. При этом все вопросы отображения берёт на себя декларативный xaml. Какие возникают сложности именно с визуализацией ваших данных?
C>Проблема в том, что тогда байндинг выражаются в тупой привязке к свойствам.
Может перевести слово binding? По русски оно и будет "привязка".
В впф байндинг нужен именно для "тупой привязки к свойствам".

C>И тогда нет особой разницы — что ставить контролу имя и писать его в атрибуте свойства, что писать в байндинге имя свойства. За исключением того, что прямой доступ к свойствам всё же более гибкий.

Вот приведите код, который показывает что нет особой разницы. Вот как раз с вашими процентами.
Re[49]: Мне аж, право, неловко...
От: Cyberax Марс  
Дата: 15.03.09 06:57
Оценка:
Здравствуйте, gandjustas, Вы писали:

C>>Проблема в том, что тогда байндинг выражаются в тупой привязке к свойствам.

G>Может перевести слово binding? По русски оно и будет "привязка".
G>В впф байндинг нужен именно для "тупой привязки к свойствам".
Мне нужен _не_ тупой байндинг. У меня есть модель данных, которая для вычислений преобразовывается специальным образом (как я уже говорил). Модель данных достаточно далека от того, что видит пользователь.

Так что с WPF или аналогичными механизмами — нужно делать промежуточный слой визуальных моделей. Мне вот это счастье нафиг не нужно.

C>>И тогда нет особой разницы — что ставить контролу имя и писать его в атрибуте свойства, что писать в байндинге имя свойства. За исключением того, что прямой доступ к свойствам всё же более гибкий.

G>Вот приведите код, который показывает что нет особой разницы. Вот как раз с вашими процентами.
Великоват он... Это у меня уже почти целый фреймворк. Я могу привести пример как оно выглядит в прикладном коде.
Sapienti sat!
Re[50]: Мне аж, право, неловко...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.03.09 07:03
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, gandjustas, Вы писали:


C>>>Проблема в том, что тогда байндинг выражаются в тупой привязке к свойствам.

G>>Может перевести слово binding? По русски оно и будет "привязка".
G>>В впф байндинг нужен именно для "тупой привязки к свойствам".
C>Мне нужен _не_ тупой байндинг. У меня есть модель данных, которая для вычислений преобразовывается специальным образом (как я уже говорил). Модель данных достаточно далека от того, что видит пользователь.
Это всегда так.

C>Так что с WPF или аналогичными механизмами — нужно делать промежуточный слой визуальных моделей. Мне вот это счастье нафиг не нужно.

Это "счастье" называет MVVM, вы считаете такой подход ненужным?
А MVC и MVP ?

Не надо обвинять WPF в свойе некомпетентности.

C>>>И тогда нет особой разницы — что ставить контролу имя и писать его в атрибуте свойства, что писать в байндинге имя свойства. За исключением того, что прямой доступ к свойствам всё же более гибкий.

G>>Вот приведите код, который показывает что нет особой разницы. Вот как раз с вашими процентами.
C>Великоват он... Это у меня уже почти целый фреймворк. Я могу привести пример как оно выглядит в прикладном коде.

Давайте весь код, уж очень интересно во сколько раз удастся его сократить.
Re[51]: Мне аж, право, неловко...
От: Cyberax Марс  
Дата: 15.03.09 07:20
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

C>>Так что с WPF или аналогичными механизмами — нужно делать промежуточный слой визуальных моделей. Мне вот это счастье нафиг не нужно.

G>Это "счастье" называет MVVM, вы считаете такой подход ненужным?
Я не считаю нужным создание лишнего слоя только для того, чтобы ощутить всю крутость байндинга в WPF, если можно обойтись другими способами.

G>>>Вот приведите код, который показывает что нет особой разницы. Вот как раз с вашими процентами.

C>>Великоват он... Это у меня уже почти целый фреймворк. Я могу привести пример как оно выглядит в прикладном коде.
G>
G>Давайте весь код, уж очень интересно во сколько раз удастся его сократить.
Весь код я всё равно не дам. Его там сейчас 180 килобайт, не считая библиотек. Пример вечером могу прислать.
Sapienti sat!
Re[51]: Мне аж, право, неловко...
От: Cyberax Марс  
Дата: 15.03.09 07:35
Оценка: 3 (2) +3 -2
Здравствуйте, gandjustas, Вы писали:

G>Давайте весь код, уж очень интересно во сколько раз удастся его сократить.


PS: вообще поражают меня сторонники ${ПОСЛЕДНЯЯ_ТЕХНОЛОГИЯ}, думающие, что она решает все проблемы. Маловато нестандартных задач, видимо, решают...
Sapienti sat!
Re[48]: Мне аж, право, неловко...
От: User239 Россия  
Дата: 15.03.09 08:29
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, gandjustas, Вы писали:


G>>Никогда бы не подумал что простому байндингу нужно "чёткий механизм ветирования и отката изменений до вычисленного корректного состояния и т.п".

G>>делайте это во ViewModel.
C>Внимание, вопрос: а нафиг мне нужен тогда байндинг, если он вырождается в 1-1 привязку к свойствам специальных синтетических объектов?

Ну так байндинг для того и нужен, чтобы отделить вашу логику от представления.

С>Так что с WPF или аналогичными механизмами — нужно делать промежуточный слой визуальных моделей. Мне вот это счастье нафиг не нужно.


Конечно код для "чёткого механизма ветирования и отката изменений до вычисленного корректного состояния" за вас не напишет ни один фреймворк на свете. Вопрос лишь в том, где писать этот код. Если это не "промежуточный слой визуальных моделей", тогда что? Обработчики кнопок (образно)? В этом случае код явно будет больше, чем при байндинге (чего стоят одни getText, setText). Не говоря уж о том, насколько увеличится подверженность различным ошибкам.
Re[50]: Мне аж, право, неловко...
От: kuj  
Дата: 15.03.09 08:42
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>Проблема в том, что тогда байндинг выражаются в тупой привязке к свойствам.

G>>Может перевести слово binding? По русски оно и будет "привязка".
G>>В впф байндинг нужен именно для "тупой привязки к свойствам".
C>Мне нужен _не_ тупой байндинг. У меня есть модель данных, которая для вычислений преобразовывается специальным образом (как я уже говорил). Модель данных достаточно далека от того, что видит пользователь.

C>Так что с WPF или аналогичными механизмами — нужно делать промежуточный слой визуальных моделей. Мне вот это счастье нафиг не нужно.


Я ржал... Ты либо туп либо притворяешься. Тебя уже десять раз ткнули носом, разжевали и положили в клюв, дали мультик посмотреть, а ты все еще не допер как работает MVVM и зачем вообще придумали MVC? Ндааааааааа.....

C>>>И тогда нет особой разницы — что ставить контролу имя и писать его в атрибуте свойства, что писать в байндинге имя свойства. За исключением того, что прямой доступ к свойствам всё же более гибкий.

G>>Вот приведите код, который показывает что нет особой разницы. Вот как раз с вашими процентами.
C>Великоват он... Это у меня уже почти целый фреймворк. Я могу привести пример как оно выглядит в прикладном коде.
Re[52]: Мне аж, право, неловко...
От: kuj  
Дата: 15.03.09 08:43
Оценка:
Здравствуйте, Cyberax, Вы писали:

G>>Давайте весь код, уж очень интересно во сколько раз удастся его сократить.


C>PS: вообще поражают меня сторонники ${ПОСЛЕДНЯЯ_ТЕХНОЛОГИЯ}, думающие, что она решает все проблемы. Маловато нестандартных задач, видимо, решают...


Ну давай просвяти нас дурней — расскажи какие такие задачи построения пользовательского интерфейса WPF не решает. Внимательно слушаем тебя, умник.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.