Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУАндрей, накидал Вам простой пример MVVM (на моих любимых DelegateCommand). Смотрите. Будут вопросы - задавайте. ты из Владивостока? http://megadarja.blogspot.com/2010/04/mvvm-wpf.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 13:39 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
искра, брось свои еврейские мультики и досужие домыслы. это ты покупаешь левые серверы, я своей головой обхожусь, на древнем барохле не сижу, вместо просмотров фильмов, как ты, смотрю совсем другое. Приходи в гости, я тебе покажу кусочек программирования ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 13:53 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУ... на моих любимых DelegateCommand ...DelegateCommand - маразм. Вот самая нормальная реализация ICommand. (c) мой Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 13:56 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Модератор: Воздерживаемся от оскорблений. 1 предупреждение. Касается обоих. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 14:03 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
ШайтанМСУАндрей, накидал Вам простой пример MVVM (на моих любимых DelegateCommand). Смотрите. Будут вопросы - задавайте. ты из Владивостока? http://megadarja.blogspot.com/2010/04/mvvm-wpf.html Сравни её пример и мой. Задумайся над своим вопросом. P.S. За основу взял этот пример, чтоб с нуля Композитуму не писать. Алексей КDelegateCommand - маразм. Вот самая нормальная реализация ICommand DelegateCommand - не маразм. Обычный враппинг, и только. Вот самая нормальная реализация ICommand: AttachedCommandBehavior или Microsoft.Expression.Interactivity. Лёша, не придумывайте лисапедов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 14:10 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Алексей КDelegateCommand - маразм Смотрите, сколько букаф у меня получается :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. P.S. Согласный "свой" вариант засунуть в печку? P.S2. Не пишите лисапедов, уже всё написано. DelegateCommand - самое простое для понимания, о котором (понимании) меня просил Андрейка Композитный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 14:14 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУАндрейка Композитный. МСУ, может как-то будем фильтровать звуки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 14:18 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
CompositumМСУАндрейка Композитный. МСУ, может как-то будем фильтровать звуки? Ну это же лучше, чем просто Композ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 14:20 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУ Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 14:44 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Алексей КЯ же говорю, ключевой момент - свойство Enabled. С DelegateCommand проблемы начинаются, когда CanExecuteDelegate посложнее чем x => true . Да п о лно Вам. Можно пойди в обход и биндить UIElement.IsEnabled на своё условие в зависимости от логики, представленной в ViewModel. Enabled - это ведь не панацея. Роль CanExecute делегата состоит не в IsEnabled, а в факте "можно или нельзя" выполнить команду. А Enabled это уже гуевые рюшечки, чтоб уж "наверняка". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 15:05 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Алексей КМСУ Код: plaintext 1. 2. 3. 4. У тебя будут другие проблемы - утечка памяти(это происходило в Prism). Должны быть WeakReferenceHandler ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 15:18 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУАлексей КЯ же говорю, ключевой момент - свойство Enabled. С DelegateCommand проблемы начинаются, когда CanExecuteDelegate посложнее чем x => true . Да п о лно Вам. Можно пойди в обход и биндить UIElement.IsEnabled на своё условие в зависимости от логики, представленной в ViewModel.Зачем идти в обход и плодить свойства, если нормальное решение занимает пару десятков строк велосипедокода? SilverlightУ тебя будут другие проблемы - утечка памяти(это происходило в Prism). Должны быть WeakReferenceHandlerЗаменить на WeakReferenceHandler несложно. Я видел это в Призме, но не понял зачем. Кажется там в коментариях было что-то про производительность. Что за утечки памяти? Если забывать потом отписываться от событий там где нужно? Если нет, то можно показательный пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 15:40 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Алексей КЗачем идти в обход и плодить свойства, если нормальное решение занимает пару десятков строк велосипедокода? А зачем придумывать какую-то логику в модели, "посложнее чем x => true"? CanExecuteDelegate решит любую задачу, которая будет описана в ViewModel. Если ViewModel не обладает этой информацией - Вы не правильно спроектировали ViewModel. И тогда не будет никаких десятков строк велосипедокода. x => true это, конечно же, для примера. Сюда можно вставить сколь угодно сложное условие. Главное, чтобы исходные данные были во ViewModel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 15:47 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУСюда можно вставить сколь угодно сложное условие. Главное, чтобы исходные данные были во ViewModel.Разумеется, все исходные данные во ViewModel есть. Причём, это одна из причин почему я отказался от CommandParameter. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 15:51 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУCanExecuteDelegate решит любую задачу, которая будет описана в ViewModel.Только вот незадача, как определить момент вызова CanExecuteChanged, когда там куча входных параметров, перечень которых может постоянно меняться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 15:53 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Алексей КМСУCanExecuteDelegate решит любую задачу, которая будет описана в ViewModel.Только вот незадача, как определить момент вызова CanExecuteChanged, когда там куча входных параметров, перечень которых может постоянно меняться. Всмысле? :) Когда первая строчка кода выполнится в CanExecuteChanged, тогда оно и момент вызова Кучу параметров можно вынести в приват класс вьюмодели, и ориентироваться по ней (как вариант). Лёнь, ну что Вы, в самом деле? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 16:07 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Алексей КМСУCanExecuteDelegate решит любую задачу, которая будет описана в ViewModel.Только вот незадача, как определить момент вызова CanExecuteChanged, когда там куча входных параметров, перечень которых может постоянно меняться. В базовом классе создаем обработчики для основных операций CanSave, CanEdit,CanFetch,etc, которые зависят от текущего состояния Моdel и самого ViewModel. Для других вариантов я сделал возможность задавать зависимости полей и делегатов(акции,функции). Те при измении поля или вызова делегата, будет автоматически вызываться сообщение об изменении других полей и/или вызываться нужные делегаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 17:29 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Сева, я ваще не понимаю, зачем делать акции на акции (или акции на команды)? Вьюмодель полноценна и сама может ответить на вопрос CanSave. Нахрена огороды городить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 17:32 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУВсмысле? :) Когда первая строчка кода выполнится в CanExecuteChanged, тогда оно и момент вызова Ситуаций может быть много, например: Код: 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. vs Код: 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. ЗЫ: Как там называется OnCanExecuteChanged не помню... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 17:38 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
SilverlightВ базовом классе создаем обработчики для основных операций CanSave, CanEdit,CanFetch,etc, которые зависят от текущего состояния Моdel и самого ViewModel. Для других вариантов я сделал возможность задавать зависимости полей и делегатов(акции,функции). Те при измении поля или вызова делегата, будет автоматически вызываться сообщение об изменении других полей и/или вызываться нужные делегаты.Я не стал заморачиваться. Сделал по старинке метод UpdateView, в котором пересчитываются все Enabled и т. п. И вызываю этот метод отовсюду, что может повлечь изменение состояния. Как правило достаточно это вызвать из CurrentItemChanged курсоров по коллекциям. ЗЫ: Поясните про утечки памяти, интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 17:45 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
ЛёняC1.OnCanExecuteChanged(); // Накойхер (с) везьде расставлять эти команды? И ещё не забыть надо, если зависимости изменятся Эээ, батенька, Вас никто не обязует реализовывать эту пыль. Если в задаче нужно перехватывать - значит реализовываем, если нет, то в топку. Ровным счетом, это относится и к INotifyPropertyChanged. Посмотрите мой пример, который я дал. В MainViewModel.cs есть ObservableCollection<Book> BooksList. Вот как он описан: Код: plaintext Где тут OnPropertyChanged? Нету. Почему? Потому, что нах не нужно. Тоже самое и Ваш OnCanExecuteChanged. Оно не обязательно. Так что зря Вы наезжаете на DelegateCommand. Кстати, смотрели RelayCommand? И как? Правильно, одна фигня, что и DelegateCommand :) Так что не надо ля-ля :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 17:46 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУЕщё раз... View никак без Вашего участия не сможет определить, когда нужно вызвать CanExecute, чтобы обновить состояния контролов. Вы должны сами явно где-то вызвать CanExecuteChanged. А делать дополнительное свойство для биндинга на IsEnabled контролов глупо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 17:52 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
Алексей КМСУЕщё раз... View никак без Вашего участия не сможет определить, когда нужно вызвать CanExecute Это почему? :) Представьте, что пришел виндовой броадкаст мессадж. Во вьюмодели у меня находится перехватчик, который после перехвата осуществляет некий экзекут. Каким боком тут View и "моё" участие, Лёня? ) Алексей КВы должны сами явно где-то вызвать CanExecuteChanged. А делать дополнительное свойство для биндинга на IsEnabled контролов глупо. Я не понимаю до сих пор Вашей проблемы. Вы не можете определить точку входа в Ваш CanExecute? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 17:57 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУПредставьте, что пришел виндовой броадкаст мессадж.Мы говорим о событиях, аля ButtonClick. МСУВы не можете определить точку входа в Ваш CanExecute?Ещё раз. Напрягает инициировать событие ICommand.CanExecuteChanged во всех сеттерах свойств, событиях и т. п., которые могут повлиять на результат метода ICommand.CanExecute, который делегирует вызов подсунутому ему делегату. Это нужно чтобы View своевременно обновило состояние контролов согласно состоянию ICommand (возможности её вызова). Как правило это отражается на значении свойства IsEnabled. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 18:18 |
|
||
|
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
|
|||
|---|---|---|---|
|
#18+
МСУГде тут OnPropertyChanged? Нету. Почему? Потому, что нах не нужно. Тоже самое и Ваш OnCanExecuteChanged. Оно не обязательно .В данной реализации это не так. Если его не будет - не будет обновляться состояние контролов во View. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 18:20 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=36637438&tid=1442794]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
30ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 363ms |

| 0 / 0 |
