|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
Кто-нибудь разбирал этот пример? Делаю mdi-интерфейс на базе tabcontrol, практически точь-в-точь как сделано там. Вроде сделал, работает как надо. Но есть косячёк - при переключении закладок таба, элемент UserControl как-бы остается "на месте". Скажем, у меня 2 принципиально разных UserControl. При переключении с одного таб на другой, где должны быть привязаны принципиально разные UserControl - все ок. При переключении табов с разными экземлярами одного и того-же - ситуация как будто они не переключаются. Т.е., если смотреть по этому примеру (это в качестве иллюстрации), я делаю 2 вкладки для добавления нового клиента, в одну из них начинаю вводить информацию, переключаюсь на другую вкладку - ситуация, как будто переключения не произошло и введенная информация для добавления та-же. В какую сторону стоит покопать, что-бы решить проблему? Выложить весь проект не могу, но может кто-то уже сталкивался с подобной ситуацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 11:27 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
mdi и wpf В какую сторону стоит покопать, что-бы решить проблему? Лучше не искать проблемы и не связываться с mdi совсем. Он полностью несовместим с wpf. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 16:54 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVa, Десятая студия разве не на wpf сделана? Даже если не на wpf, как по вашему организовать работу с несколькими документами и возможностью быстрого переключения? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 17:16 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
Кстати, по-моему форма с закладками это скорее SDI, а не MDI. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 17:17 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
У меня сейчас такая общая задача. Есть набор наследников от UserControl - нужно через набор вкладок на форме организовать работу с ними в рамках модели MVVM. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2011, 17:23 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
mdi и wpfВ какую сторону стоит покопать, что-бы решить проблему? Взять готовый фрейворк и не изобретать велосипед. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 09:31 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVamdi и wpfВ какую сторону стоит покопать, что-бы решить проблему? Взять готовый фрейворк и не изобретать велосипед. А какой? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 11:42 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
kopievКстати, по-моему форма с закладками это скорее SDI, а не MDI.Нет. По теме. Это надо уметь писать самостоятельно. Если не получается самостоятельно реализовать Tabbed MDI - надо или бросать проект, или более детально изучать WPF. Эту типовую задачу можно считать этаким тестом на профпригодность. Тут не Делфи, где накидал контролов на форму и всё как-то заработало. Без базовых знаний по WPF и устоявшихся практик ничего не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 11:56 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
Алексей КkopievКстати, по-моему форма с закладками это скорее SDI, а не MDI.Нет. По теме. Это надо уметь писать самостоятельно. Если не получается самостоятельно реализовать Tabbed MDI - надо или бросать проект, или более детально изучать WPF. Эту типовую задачу можно считать этаким тестом на профпригодность. Тут не Делфи, где накидал контролов на форму и всё как-то заработало. Без базовых знаний по WPF и устоявшихся практик ничего не получится. А что подразумевается под Таbbed MDI? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 12:32 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
Алексей К, Полностью согласен с тем, что нужно уметь все это делать самостоятельно. Поэтому и делаю, и разбираюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 12:44 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVaА что подразумевается под Таbbed MDI?Способ навигации между документами? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 13:13 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
mdi и wpfБерём концепцию MVVM. Делаем ViewModel. В ней свойство с коллекцией открытых документов (она в данном случае является Model) + логика по их добавлению, созданию, уничтожению и т. п. Прикручиваем к ней View (UserControl). На View удобнее всего разместить TabControl, забинденный на коллекцию документов во ViewModel. Стилями/шаблонами/датабиндингом добиваемся нужного внешнего вида и функционала табконтрола. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 13:45 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
Алексей КView (UserControl). На View удобнее всего разместить TabControl, забинденный на коллекцию документов во ViewModel. Какая-то путаница в показаниях(никакой tabcontrol на View не должен быть). ЧТо под этим подразумевается? И кто и кого биндит? ЗЫ Описан простой tabbed интерфейс, а не tabbed-mdi, который в VS. Две большие разницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 14:18 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVaКакая-то путаница в показаниях.Путаница в самом понятии MVVM. Я бы на месте авторов идеологии назвал его VM-V и не парил общественности мозг. SeVaникакой tabcontrol на View не должен бытьЭто ещё надо доказать. SeVaЧТо под этим подразумевается? И кто и кого биндит?Что может быть очевиднее чем: Код: plaintext
SeVaЗЫ Описан простой tabbed интерфейс, а не tabbed-mdi, который в VS. Две большие разницы.Никакой. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 14:29 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVaЗЫ Описан простой tabbed интерфейс, а не tabbed-mdi, который в VS. Две большие разницы.Или я не написал, что в HeaderTemplate TabItem-а как правило вставляется кнопочка "закрыть". Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 14:46 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
> никакой tabcontrol на View не должен быть Если сделать tabcontrol на View и привязать его к коллекции документов на ViewModel, то с этим ясно, так я умею делать. В том примере все строится на базе HeaderedContentControl. Ок, ладно. Сделаю как Алексей К написал выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 15:47 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
mdi и wpf> никакой tabcontrol на View не должен быть Если сделать tabcontrol на View и привязать его к коллекции документов на ViewModel, то с этим ясно, так я умею делать. В том примере все строится на базе HeaderedContentControl. Ок, ладно. Сделаю как Алексей К написал выше. Ребята, учите матчасть. Какие tabcontrol на View? MVVM проще паренной репы, но этого не скажешь о wpf. Со своим пижонством(все уже давно готово у других)и нежеланием смотреть, что сделано другими, вы так и будете кодировать в стиле Delphi, а в wpf совсем другие подходы. Все, что нужно - создать свой контрол(MyView) и добавить его в tabcontrol - TabControl.Items.Add(MyView). Те кто в танке и знают о implicit style, могут просто добавить ViewModel в ItemsSource. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 16:00 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVaРебята, учите матчасть.Да. SeVaКакие tabcontrol на View?Без коментариев. SeVaMVVM проще паренной репыДа SeVaно этого не скажешь о wpfТам тоже всё просто, главное понять его основную идею. SeVaСо своим пижонством(все уже давно готово у других)и нежеланием смотреть, что сделано другимиКалибурн? Призм? МввмЛайт? Ага, в добрый путь... SeVaвы так и будете кодировать в стиле Delphi"Всё новое - хорошо забытое старое" (с) Отбрасывать весь накопленный опыт довольно легкомысленно. SeVaа в wpf совсем другие подходы.И да, и нет. SeVaВсе, что нужно - создать свой контрол(MyView)Создали. Чем по твоему является документ, добавляемый в коллекцию Documents? SeVaи добавить его в tabcontrol - TabControl.Items.Add(MyView).И получить зависимость логики управления документами от класса TabControl. Здравствуй жёсткая связность. Зато кругом диконтейнеры и регионманагеры. А чё толку... А завтра надоест табконтрол, захочется какой-нибудь гламурнотрёхмерной муйни в качестве контейнера документов, чтобы всё двигалось и летало при навигации между документами. В моём примере только во View контейнера документов я заменю родной TabControl на DevXtraOneSuperPuper3DCarouselControl. Всё остальное останется без изменений. А что делать в твоём случае я не знаю. SeVaТе кто в танке и знают о implicit styleХотел сказать implicit data template? Знаем, знаем. SeVaмогут просто добавить ViewModel в ItemsSourceЧуть выше об этом и писалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 17:23 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
mdi и wpfЕсли сделать tabcontrol на View и привязать его к коллекции документов на ViewModel, то с этим ясно, так я умею делать.Можно ещё унаследовать контрол от TabControl и реализовать всё там, но этот способ мне нравится меньше. Хотя, он наверное тоже имеет право на жизнь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 17:26 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
Алексей КSeVaРебята, учите матчасть.Да. SeVaКакие tabcontrol на View?Без коментариев. SeVaMVVM проще паренной репыДа SeVaно этого не скажешь о wpfТам тоже всё просто, главное понять его основную идею. SeVaСо своим пижонством(все уже давно готово у других)и нежеланием смотреть, что сделано другимиКалибурн? Призм? МввмЛайт? Ага, в добрый путь... SeVaвы так и будете кодировать в стиле Delphi"Всё новое - хорошо забытое старое" (с) Отбрасывать весь накопленный опыт довольно легкомысленно. SeVaа в wpf совсем другие подходы.И да, и нет. SeVaВсе, что нужно - создать свой контрол(MyView)Создали. Чем по твоему является документ, добавляемый в коллекцию Documents? SeVaи добавить его в tabcontrol - TabControl.Items.Add(MyView).И получить зависимость логики управления документами от класса TabControl. Здравствуй жёсткая связность. Зато кругом диконтейнеры и регионманагеры. А чё толку... А завтра надоест табконтрол, захочется какой-нибудь гламурнотрёхмерной муйни в качестве контейнера документов, чтобы всё двигалось и летало при навигации между документами. В моём примере только во View контейнера документов я заменю родной TabControl на DevXtraOneSuperPuper3DCarouselControl. Всё остальное останется без изменений. А что делать в твоём случае я не знаю. SeVaТе кто в танке и знают о implicit styleХотел сказать implicit data template? Знаем, знаем. SeVaмогут просто добавить ViewModel в ItemsSourceЧуть выше об этом и писалось. Если бы ты не был пижоном, а разобрался хоты с одним фрейворком, то, возможно, понял, что такое wpf. Prismы и прочие калабуризмы имеют уже готовые решения без всякой жесткой связанности(в саliburn достаточно только добавить viewmodel в коллекцию, остальное все делается на автомате) и позволяют писать код без маразма с обработчиками в стиле Delphi, к которому ты привык и никак не можешь с ним расстаться. Какой был смысл в переходе? Никакого ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2011, 19:21 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVaPrismы и прочие калабуризмы имеют уже готовые решения без всякой жесткой связанностиДа чё все помешались на слабой связности. Серебрянная пуля? Пилюля от всех бед? Ну пишите тогда на PHP или ещё на чём без строгой типизации... А мне это не надо. SeVaи позволяют писать код без маразма с обработчиками в стиле DelphiЭто-то каким боком тут? Всё через RelayCommand, в лучших традициях. Правда думал взять модель команд из того же калибурна, чтобы делать привязку к методам напрямую, без ICommand. Но чё-то пока не решаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2011, 06:17 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
Именно серебряная. Применительно к теме топика, она позволяет: - в несколько десятков строк наковырять оконный менеджер - сменить затем на любой другой(tab, mdi никому не нужны в LOB) не меняя остальной код ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2011, 10:22 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVaИменно серебряная. Применительно к теме топика, она позволяет: - в несколько десятков строк наковырять оконный менеджер Модель оконного менеджера в несколько десятков строк без IoC Код: 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.
SeVatab, mdi никому не нужны в LOBДиалоги тоже не нужны, ага... SeVaсменить затем на любой другой не меняя остальной код Легко и непринуждённо... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2011, 10:32 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
SeVamdi никому не нужны в LOB ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2011, 22:36 |
|
mdi на базе вкладок
|
|||
---|---|---|---|
#18+
Алексей КSeVaИменно серебряная. Применительно к теме топика, она позволяет: - в несколько десятков строк наковырять оконный менеджер + Модель оконного менеджера в несколько десятков строк без IoC Код: 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.
SeVatab, mdi никому не нужны в LOBДиалоги тоже не нужны, ага... SeVaсменить затем на любой другой не меняя остальной код Легко и непринуждённо... Лучше бы ты призмы или калибурны осилил. Твой так называемый менеджер пригоден только для лабораторной. Нет проверок открыт ли уже документ так как это делается в VS, частный случай без возможности составных view&viewModel, нет запросов к пользователю если данные были изменены и тд. ЗЫ В новом проекте не будет ниодного диалога, без них можно спокойно обойтись ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2011, 00:54 |
|
|
start [/forum/topic.php?fid=21&fpage=48&tid=1442108]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 445ms |
0 / 0 |