Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Алексей КМСУP.S. ChildWindowa525 Внимательно знакомимся с ShowDialog в WPF/WinForms/Delphi, смотрим исходники, пытаемся почуять разницу. Юзаем ChildWindow и не ипём моск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 20:24 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
МСУЮзаем ChildWindow и не ипём моск.Да там с лямбдами замучаешся. Опять же хочется иметь одинаковый прикладной код для WPF/SL. guest2Это ты в браузере, что ли, собрался ShowDialog делать?ChildWindow есть, что мешает? guest2Учимся делать нормальные приложения, основанные на NavigationService, а не кучу окон городить.Т. е. все существующие приложения с диалогами считаются ненормальными? Смелое утверждение. Диалог типа "Будет удалена завись. Продолжить? Да/Нет" тоже отдельной страницей делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 06:07 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Алексей КОпять же хочется иметь одинаковый прикладной код для WPF/SL. А смысл? Я, вот, не понимаю эту сферически фанатичную идею делать минимальные зависимости на двух различных платформах. Накойляд (с) спрашивается. Во-вторых, никто не мешает UI планировать на юзер-контролах, а Window (WPF) и ChildWindow (сильвер) использовать как хостеров. Алексей КДиалог типа "Будет удалена завись. Продолжить? Да/Нет" тоже отдельной страницей делать? Ну как-раз тут всё очень просто :) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 09:39 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Алексей Кguest2Учимся делать нормальные приложения, основанные на NavigationService, а не кучу окон городить.Т. е. все существующие приложения с диалогами считаются ненормальными? Смелое утверждение. Смелое, особенно учитывая, что я этого не утверждал.Алексей КДиалог типа "Будет удалена завись. Продолжить? Да/Нет" тоже отдельной страницей делать?Для этого MessageBox есть. Я фигею - делаем за оппонента утверждения и потом героически их опровергаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 10:48 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
МСУАлексей КОпять же хочется иметь одинаковый прикладной код для WPF/SL. А смысл? Я, вот, не понимаю эту сферически фанатичную идею делать минимальные зависимости на двух различных платформах. Накойляд (с) спрашивается.Ну на первый взгляд этот не сложно. Почему бы и нет? :-) МСУВо-вторых, никто не мешает UI планировать на юзер-контролах, а Window (WPF) и ChildWindow (сильвер) использовать как хостеров.А это не имеет значения. Хоть как тут делай - прикладной код будет отличаться. МСУАлексей КДиалог типа "Будет удалена завись. Продолжить? Да/Нет" тоже отдельной страницей делать? Ну как-раз тут всё очень просто :) Код: plaintext Алексей КP.S. Всё-таки, NavigationService, как уже говорили, более полезен в браузерных решениях. Очень удобно иметь определенные странички в закладках. Поэтому, устраивать замес WPF с сильвером, по меньшей мере, неблагоразумно. Коням - овёс, волкам - овец. Не наоборот.Т. е. диалоги нынче не модно? Диалоги делаются в Windows-приложениях из-за отсутствия NavigationService? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 11:27 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Алексей КНу на первый взгляд этот не сложно. Почему бы и нет? :-) Ну много в этой жизни, что не сложно. Так давайте же будем выдумывать феерические задачи и с гордостью их решать? P.S. Нахненужно! Алексей КА это не имеет значения. Хоть как тут делай - прикладной код будет отличаться. Да, как ни крути. Шаг влево - уже расхождения с WPF. Алексей КНу мы-то с вами знаем, что диалоги бывают более замысловатые... ChildWindow же Алексей КТ. е. диалоги нынче не модно? Диалоги делаются в Windows-приложениях из-за отсутствия NavigationService? Диалоги - это замечательно. Речь о типе сильверовского проекта. Есть Silverlight Application (типа WPF как-бы) и есть Silverlight Navigation Application. Шаблоны проектов уже заряжены в VS2010. Так вот, Вам никто не запрещает юзать великолепный ChildWindow в SNA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 11:54 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
МСУАлексей КНу мы-то с вами знаем, что диалоги бывают более замысловатые... ChildWindow же Мы опять ходим по кругу. Я не говорю, что в ChildWindow нет ShowDialog. Я говорю что он неудобен. Делегат закрытия диалога возможно придётся тащить через несколько методов, если диалогов несколько. Это разьве нормально? Код: plaintext 1. 2. 3. vs Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 12:18 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
А когда куча лямбд, stack trace становится весьма непонятным, что существенно затрудняет отладку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 12:20 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Алексей КЯ не говорю, что в ChildWindow нет ShowDialog. Так а в нем и нет ShowDialog, в нем есть только Show :) Алексей КЯ говорю что он неудобен. Делегат закрытия диалога возможно придётся тащить через несколько методов, если диалогов несколько. Это разьве нормально? Зачем тащить куда-то делегат? А напрямую из вьюмодели не сутьпба? MainViewModel.cs (типа главное окошко) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. CustomerEditWindow.xaml (кнопачки) Код: plaintext 1. CustomerEditWindowModel.cs (вызываемая модальная шняжка) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. Ну как-то так :) АлёшаА когда куча лямбд, stack trace становится весьма непонятным, что существенно затрудняет отладку. Чё Вы к лямбдам привязались, что с ними не так? dinamyc? ) А stack trace тут как упал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 12:31 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
МСУАлексей КЯ не говорю, что в ChildWindow нет ShowDialog. Так а в нем и нет ShowDialog, в нем есть только Show :)Дапох как он там называется. МСУАлексей КЯ говорю что он неудобен. Делегат закрытия диалога возможно придётся тащить через несколько методов, если диалогов несколько. Это разьве нормально? Зачем тащить куда-то делегат? А напрямую из вьюмодели не сутьпба?Ну а если какой-то код нужно выполнить после закрытия диалога. Посмотри ещё раз мой последний пример. Вот обсуждение сабжа с авторами. Их лошадиные отмазки по поводу кросплатформенности кажутся весьма неубедительными. МСУАлёшаА когда куча лямбд, stack trace становится весьма непонятным, что существенно затрудняет отладку. Чё Вы к лямбдам привязались, что с ними не так? dinamyc? ) А stack trace тут как упал? Ну имена методов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 12:50 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Алексей КНу а если какой-то код нужно выполнить после закрытия диалога. Ёпт, опишите евент в диалоговом окне и из вызываемого окна присоситесь к нему. Ну пистец вопросы, Лёня... :( Собственно, вариант с event Action, который я дал, так и работает. Ничего выдумывать не нужно. Контролировать можно полностью поведение вьюмодельки. Алексей КПосмотри ещё раз мой последний пример. Вот обсуждение сабжа с авторами. Их лошадиные отмазки по поводу кросплатформенности кажутся весьма неубедительными. Бать, дату смотрели? :) Тогда народ не знал о чилдвиндоу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:07 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Короче, Лёня, харэ флудить! Диалоговость в сильвере есть. И точка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:08 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
МСУАлексей КНу а если какой-то код нужно выполнить после закрытия диалога.Ёпт, опишите евент в диалоговом окне и из вызываемого окна присоситесь к нему. Ну пистец вопросы, Лёня... :( Собственно, вариант с event Action, который я дал, так и работает. Ничего выдумывать не нужно. Контролировать можно полностью поведение вьюмодельки. Ну я и возмущаюсь как обойтись без них. Чё лямбды на пустом месте плодить. МСУАлексей КПосмотри ещё раз мой последний пример. Вот обсуждение сабжа с авторами. Их лошадиные отмазки по поводу кросплатформенности кажутся весьма неубедительными. Бать, дату смотрели? :) Тогда народ не знал о чилдвиндоу.Чилдвиндоу был создан матерящимся сообществом на следующий день после первого релиза SL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:12 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Алексей КНу я и возмущаюсь как обойтись без них. Чё лямбды на пустом месте плодить. А, Вы про эти лямбды :) Я просто подумал, что Вы хотите передавать лямбды в вызываемый попап, чтоб как-бы не типизироваться, dinamyc вона даже предложил Алексей КЧилдвиндоу был создан матерящимся сообществом на следующий день после первого релиза SL. Хз, может и так. Но, это же решение Вашей "проблемы"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:16 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
МСУАлексей КНу я и возмущаюсь как обойтись без них. Чё лямбды на пустом месте плодить. А, Вы про эти лямбды :) Я просто подумал, что Вы хотите передавать лямбды в вызываемый попап, чтоб как-бы не типизироваться, dinamyc вона даже предложил Ну наконец-то... МСУАлексей КЧилдвиндоу был создан матерящимся сообществом на следующий день после первого релиза SL. Хз, может и так. Но, это же решение Вашей "проблемы"?Да нет же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:25 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
А, вообще, если на то пошло, то как Вам вариант паттерна "батон клик"? Никаких тебе делегатов и никаких тебе лямбд, автогенерация клик-методов рулит же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:35 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
МСУ Диалоговость в сильвере есть. И точка. хороший термин. Зопесал в блокнотег МСУА, вообще, если на то пошло, то как Вам вариант паттерна "батон клик"? Никаких тебе делегатов и никаких тебе лямбд, автогенерация клик-методов рулит же. pattern как pattern :) в МСДН'е куча примеров с использованием оного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 14:22 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
МСУАлексей КЯ не говорю, что в ChildWindow нет ShowDialog. Так а в нем и нет ShowDialog, в нем есть только Show :) Алексей КЯ говорю что он неудобен. Делегат закрытия диалога возможно придётся тащить через несколько методов, если диалогов несколько. Это разьве нормально? Зачем тащить куда-то делегат? А напрямую из вьюмодели не сутьпба? + MainViewModel.cs (типа главное окошко) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. + CustomerEditWindow.xaml (кнопачки) Код: plaintext 1. + CustomerEditWindowModel.cs (вызываемая модальная шняжка) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. Ну как-то так :) АлёшаА когда куча лямбд, stack trace становится весьма непонятным, что существенно затрудняет отладку. Чё Вы к лямбдам привязались, что с ними не так? dinamyc? ) А stack trace тут как упал? МСУ, на какой помойке ты этот гомнокод откопал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 14:54 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Понравилось решение проблемы. Безумный herbertI meet the same problem, and I think it was because that the Tabcontrol will remove the content of current TabItem from the visual tree and add the content of the selected TabItem to the visual tree when you switch Tabs. Then as the visual tree updated, there will be loaded and unloaded event fired for the newly added control and removed control respectively. I solved this problem by write a new tab control , which added all the items to the visual tree at the very beginning, and just make it hiden when the item was unselected, make it visible when the item was selected. This accelerate the switch speed a lot, especialy when the TabItem’s content is complex. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2010, 08:59 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
ПРоблема не стоит выеденного яйца. Порочный подход из WinForms автор In all my Windows Forms applications, I usually start with a common base class for forms При более внятном варианте ViewModel first отслеживать загрузку View - совершенно лишнее. Кроме того в WPF нет никакой поддрежки наследования forms за полной ненадобностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2010, 09:44 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
I love WPFПри более внятном варианте ViewModel first отслеживать загрузку View - совершенно лишнее.Согласен. Просто удивил сам факт этого явления. :-) I love WPFКроме того в WPF нет никакой поддрежки наследования forms за полной ненадобностью.Да, это проблемы того топикстартера. Бог ему судья. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2010, 10:21 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
I love WPFПри более внятном варианте ViewModel first отслеживать загрузку View - совершенно лишнее.С другой стороны, при написании Attached Property и т. п. - Loaded может быть просто незаменимым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2010, 10:43 |
|
||
|
Топик ненависти к WPF
|
|||
|---|---|---|---|
|
#18+
Незаменимых у нас нет. Создаем свойство IsInitialized. Инициализацию делаем только, если значение этого свойства = false, после инициализации переводим его в true. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2010, 16:06 |
|
||
|
|

start [/forum/topic.php?fid=21&startmsg=36688572&tid=1442748]: |
0ms |
get settings: |
6ms |
get forum list: |
7ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
74ms |
get topic data: |
11ms |
get forum data: |
1ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 170ms |

| 0 / 0 |
