0 / 0 / 1
Регистрация: 12.09.2015
Сообщений: 37
|
|||||||||||
1 | |||||||||||
Обновление коллекции по кнопке24.12.2019, 11:52. Показов 4175. Ответов 5
Здравствуйте.
Имеются два ListBox'а. В качестве элементов обоих ListBox'ов выступает TextBox с привязанным свойством Text. Оба ListBox'а связаны с одной и той же коллекцией. ListBox1 имеет способ привязки TwoWay, а ListBox2 - OneWay. Для ListBox2 также определено: UpdateSourceTrigger="Explicit". Я хочу, чтобы данные коллекции, после изменения полей в ListBox2, обновлялись только по нажатию кнопки. Если бы TextBox был не в ListBox'е, то я бы мог воспользоваться BindingExpression, чтобы осуществить обновление в каком-нибудь другом месте. Как можно в данном случае сделать обновление по кнопке? Кнопка "Add" добавляет объект в коллекцию, "Remove" удаляет. "Save" должна обновлять содержимое коллекции согласно ListBox2. "Update" вызывает listbox2.Items.Refresh(); XAML-код:
0
|
24.12.2019, 11:52 | |
Ответы с готовыми решениями:
5
Удаление элемента коллекции в коллекции коллекции ) Обновление фрейма по кнопке из другого фрейма Сделать сортировку коллекции вместо создания новой коллекции с передачей IOrderedEnumerable<T> Как удалить элемент из коллекции, во время перебора этой коллекции foreach? |
215 / 149 / 48
Регистрация: 28.12.2016
Сообщений: 716
|
|
24.12.2019, 12:54 | 2 |
Dmitry12345, вам проще через VM сделать и тогда во время добавления/удаления из коллекции она будет обновляться
0
|
1577 / 583 / 183
Регистрация: 05.12.2015
Сообщений: 935
|
|||||||||||
24.12.2019, 13:15 | 3 | ||||||||||
вы перепутали направления передачи данных.
обновляет не TextBox, а объект Data, поэтому он бесполезен для вашей задачи измените в ListBox2
0
|
0 / 0 / 1
Регистрация: 12.09.2015
Сообщений: 37
|
|
24.12.2019, 14:23 [ТС] | 4 |
Вероятно, я неточно выразился. Мною преследуется следующая цель: после изменения текста в каком-либо TextBox'е, принадлежащему ListBox1, свойство Name изменяется для соответствующего объекта коллекции после потери фокуса этим TextBox'ом. В ListBox2 эти изменения тоже должны быть видны. После изменения текста в каком-либо TextBox'е, принадлежащему ListBox2, нужно, чтобы свойство Name соответствующего объекта изменилось ТОЛЬКО после нажатия кнопки Save. То есть после нажатия кнопки Save изменения должны быть видны и в ListBox1. Кнопка Update здесь служит для отмены изменения содержимого TextBox'ов ListBox2 (лучше бы было назвать кнопку: "Cancel"). Надеюсь, стала понятней моя цель
0
|
1577 / 583 / 183
Регистрация: 05.12.2015
Сообщений: 935
|
|||||||||||
24.12.2019, 16:58 | 5 | ||||||||||
Сообщение было отмечено Dmitry12345 как решение
Решение
прямое решение слишком "тяжелое" для такой простой задачи.
Надо перестроить алгоритм, ввести промежуточные объекты. А пока решение как просили:
1
|
0 / 0 / 1
Регистрация: 12.09.2015
Сообщений: 37
|
|
25.12.2019, 07:05 [ТС] | 6 |
Спасибо! Все работает, как я и задумывал. Для меня была проблема, как обратиться к TextBox'ам, чтобы воспользоваться BindingExpression.
0
|
25.12.2019, 07:05 | |
25.12.2019, 07:05 | |
Помогаю со студенческими работами здесь
6
Доступ из элемента коллекции к другим элементам коллекции Обновление списка из коллекции Обновление данных из SQL по кнопке Получение новой коллекции путем фильтрации элементов коллекции находящихся в другой коллекции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |