Модератор
|
|||||||||||
1 | |||||||||||
MultiDataTrigger в DataGrid на свойство DataGridCell.IsEditing12.09.2018, 17:42. Показов 1597. Ответов 9
Метки condition, datagrid, datagridcell, datagridtemplatecolumn, multidatatrigger, wpf, xaml (Все метки)
Создал колонку
DataGridTemplateColumn в DataGrid с подсказкой. Не могу "достучаться" до свойства DataGridCell.IsEditing нужного для изменения цветов в TextBox при редактировании ячейки.Упрощённый пример. XAML Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
DataGrid создаются (строки 22 и дальше) TextBlock и TextBox . Если TextBox пустой, то он становится прозрачным, а TextBlock - видимым.В строках 32-33 условия для изменения цвета (при выделении ячейки) забинденные на свойства ячейки. Связь с IsSelected работает нормально, а с IsEditing - не работает. Как будто это свойство всегда установлено в False .В чём проблема? Как это можно решить?
0
|
12.09.2018, 17:42 | |
Ответы с готовыми решениями:
9
Как активировать свойство CanUserAddRows в DataGrid Как привязать свойство объекта в DataGrid Как при выделении строки в DataGrid передавать ее в свойство? Какое свойство отвечает за линии между строками DataGrid? |
Модератор
|
|||||||||||
14.09.2018, 00:05 [ТС] | 2 | ||||||||||
Разобрался в чём дело. В колонке
DataGridTemplateColumn при редактировании TextBox надо биндится на его собственное свойство IsSelectionActive . Но обнаружилась другая проблема при изменении текста в TextBox новой колонки не происходит автоматического добавления строки, т.е. новая пустая не появляется.XAML Кликните здесь для просмотра всего текста
Код XAML.cs - добавлена реализация источника типом ObservableCollection и интерфейс INotifyPropertyChanged .
Кликните здесь для просмотра всего текста
0
|
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 55
|
|
16.09.2018, 22:22 | 3 |
Добрый вечер, спасибо за поддержку (можно так сказать), не подумал, что на такой вопрос так сложно найти ответ.
0
|
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 55
|
||||||
18.09.2018, 17:24 | 4 | |||||
Посмотрите пожалуйста вот код, может у Вас получится изменить что я не правильно написал, в нем две проблемы
1. Это при добавлении новой строки, курсор слетает с ячейки 2. И когда нажимаешь на ячейку курсор с третьего раза встает в ячейку Я с MVVM быстрее разобрался, чем с Подсказкой в XAML )))) :
0
|
Модератор
|
|||||||||||||||||||||
19.09.2018, 20:42 [ТС] | 5 | ||||||||||||||||||||
В указанном варианте последовательность работы шаблонов и триггеров такая:
Чтобы изменить это, надо совместить по действиям
Не знаю что из этого возможно - покапаюсь. Добавлено через 6 минут Ну, надо учитывать, что MVVM - это шаблон (паттерн) программирования. А WPF (XAML) - фактически язык программирования. Причём, не сказать, что очень удобный. По этой причине от него многие отказываются, и за пределами Windows+WPF его практически не используют. Добавлено через 5 минут Не понял о чём Вы здесь. У меня после редактирования ячейки он переходит на следующую - типичное действие для Enter. Соответственно, после редактирования новой строки, создаётся под ней следующая новая и происходит переход на неё. У Вас не так работает, или Вы хотите иного поведения? Добавлено через 1 час 0 минут Нашёл ещё третью. Если удалить текст в существующей ячейке, то подсказка не выводится. Вас устраивает такое поведение? Добавлено через 2 минуты Решение третьей нашёл. Добавить ещё один блок DataTrigger
Нашёл промежуточное решение. Редактирование начинается по второму клику кроме последней (новой) строки. В ней по третьему.
scobin, с помощью novikov.ea в теме Переход к редактированию TextBox удалось решить эту задачу. Надо в проекте подключить ссылку на System.Windows.Interactivity В код проекта в локальное пространство добавить класс
0
|
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 55
|
|
19.09.2018, 21:14 | 6 |
Добрый вечер, по 2 вопросу когда нажимаешь Enter и после этого создается новая строка, получается, что ячейка закрыта для редактирования и приходится нажимать курсором, что бы открыть доступ для редактирования.
Мне помогли с решением, вариант вот такой по ссылке: Почему то ссылку не даёт вставить Вам спасибо за помощь.
0
|
Модератор
|
|
19.09.2018, 23:50 [ТС] | 7 |
Т.е. Вы хотели, что бы при появлении новой строки сразу она была в режиме редактирования?
Напишите сайт и название страницы - дальше сам найду.
0
|
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 55
|
|
20.09.2018, 09:25 | 8 |
stackoverflow.com
/questions/882723/Как-редактировать-в-datagridtemplatecolumn-wpf/882985#882985 Вот так получилось разделить ссылку.
0
|
Модератор
|
|
20.09.2018, 10:19 [ТС] | 9 |
Приходится иногда так делать. Почему то, здесь форма для сообщений не все URL принимает.
Добавлено через 7 минут В данном случае связанно с тем, что stackoverflow.com - англоязычный сайт. И, судя по "Как-редактировать-в-datagridtemplatecolumn-wpf" Вы смотрели не оригинал, а виртуальную переводную страницу. Или какое-то неглобальное отображение этой страницы на русском языке. Напрямую, по ссылке stackoverflow.com + /questions/882723/Как-редактировать-в-datagridtemplatecolumn-wpf/882985#882985 - страницы нет. Вышлите первый абзац текста оттуда на русском. Добавлено через 3 минуты Нашёл. Вы неправильно дали ссылку на сайт. Надо https://ru. + stackoverflow.com Добавлено через 1 минуту Именно эту ссылку форма здесь и не пропускает.
0
|
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 55
|
|
20.09.2018, 10:44 | 10 |
Точно, я совсем забыл вставить ru/
0
|
20.09.2018, 10:44 | |
20.09.2018, 10:44 | |
Помогаю со студенческими работами здесь
10
Не работает MultiDataTrigger DataGrid - свойство Columns.Button. Как заполнить полученное поле? GridView получить выбранную ячейку в виде DataGridCell MultiDataTrigger Validation.HasError на кнопке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |