|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
У меня есть на форме DataGrid, где в первом столбце находятся checkbox'ы. Если хоть 1 выделен, то свойство IsEnabled кнопки под таблицей должно стать True, иначе False. Как это можно сделать, не отступая от модели MVVM? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 11:14 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
это можно сделать на стороне представления, а можно на стороне модели. Ты как хочешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 11:42 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
А на стороне ModelView никак? Предложите тогда оба варианта... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 11:45 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Volik А на стороне ModelView Ну я вообще под словом модель имел ввиду ViewModel конечно... Просто отслеживаешь события изменения элементов коллекции и выставляешь нужное свойство модели, на которое уже завязан IsEnabled ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 11:55 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Shocker.Pro, "Просто отслеживаешь события изменения элементов коллекции". Вот это самое непонятное. Единственное, что я смог найти, это в свойствах DataGridCheckBoxColumn указать: Код: xml 1. 2. 3.
И во View в OnChecked обновлять свойство IsEnabled. Но это же отступление от модели MVVM? Хотелось бы как-то сделать так, чтобы кода в View нового не появилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:21 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Volik "Просто отслеживаешь события изменения элементов коллекции". Вот это самое непонятное. Если ты пытаешься написать что-то на стороне xaml, это уже представление ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:25 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Volik Хотелось бы как-то сделать так, чтобы кода в View нового не появилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:28 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Volik кода в View ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:29 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Shocker.Pro Появится этот код с модели или, скажем, в конвертере, не столь важно, но он будет. Так вот как сделать через модель? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:30 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Shocker.Pro Volik кода в View У меня есть View (код XAML и файл cs с 2 строками: Код: c# 1. 2.
Все остальное делается в классе MyViewModel. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:32 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Volik Shocker.Pro Появится этот код с модели или, скажем, в конвертере, не столь важно, но он будет. Так вот как сделать через модель? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:35 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Shocker.Pro Volik пропущено... Так вот как сделать через модель? Таким образом? Код: xml 1. 2. 3.
Тогда этот обработчик придется написать в коде View. А я хотел через ViewModel. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 12:41 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Так подписывайся во ViewModel. Причем тут xaml? xaml - это view ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 13:02 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Если ты хочешь подписаться именно через View - тоже можно Только используй не события, а команды Команды можно привязывать к ViewModel через {Binding} ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 13:03 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Shocker.Pro Так подписывайся во ViewModel. Причем тут xaml? xaml - это view Можно пример? На что подписываться? ViewModel ничего не знает о View. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 13:09 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Зачем модели знать что-то о вью? У тебя в модели есть коллекция, в коллекции есть элементы, у элементов есть поле, которое у тебя привязано к чебоксу, у поля есть событие на изменение - вот на него и надо подписаться внутри модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 13:33 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Как вариант, в представлении можно перехватить всплывающую команду изменения чекбокса на уровне грида и привязать ее к команде в ViewModel ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 14:12 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
В представлении этого лучше не делать. так как элементы DataGrid могут не существовать, но при этом иметь выделенный CheckBox Если это кнопка, то можно просто сделать проверку того, что есть как минимум 1 "крыжик" который выделен в CanExecute При переключении CheckBox'а, команда должна будет обновиться сама ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 14:43 |
|
Заблокировать кнопку, если нет флажков в DataGrid
|
|||
---|---|---|---|
#18+
Roman Mejtes В представлении этого лучше не делать. так как элементы DataGrid могут не существовать, но при этом иметь выделенный CheckBox По отловленной команде - просмотр коллекции на предмет включенных галок ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 15:33 |
|
|
start [/forum/topic.php?fid=21&msg=39893548&tid=1440303]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 158ms |
0 / 0 |