2009-09-11 3 views
0

У меня есть ListControl, который заполнен ObservableCollection. У меня также есть «Добавить новый элемент» TextBox на usercontrol. Когда я вводим текст в TextBox и нажимаю «Добавить», элемент проходит через соответствующую логику и добавляет к моему ObservableCollection, который немедленно отображает ListControl. Все идет нормально.Добавление нового элемента в ObservableCollection из TextBox остается связанным?

ОДНАКО. То, что TextBox по-прежнему заполняется элементом, который я только что добавил ... если я попытаюсь изменить или отменить это TextBox, элемент, который я только что добавил, отражает изменение! Как я могу получить TextBox, чтобы очистить после добавления нового элемента? Я использую подход MVVM, поэтому мой TextBox привязан к {Binding Path=Object.Name}.

Любые идеи?

ответ

0

Недостаточно деталей, чтобы обеспечить правильный ответ, но я дам ему шанс. Кажется, вам нужно создать новый «объект» (как в Path = Object.Name) после добавления предыдущего в ObservableCollection. Это означает, что TextBox будет привязан к новому объекту вместо старого, и вы сможете повторить этот процесс.

0

Когда кнопка «Добавить» нажата, я буду клонировать объект, который находится в привязке TextBox, и добавить клон в ObservableCollection.

Затем вы можете оставить объект привязанным к TextBox и отредактировать его, не испортив добавленного, или просто очистить TextBox, установив объект в null.

+0

Когда вы говорите «Клон», что именно вы имеете в виду? Я не могу просто сказать BackupObject = CurrentObject; BusinessClass.Save (BackupObject); CurrentObject = null; Причина в том, что, похоже, мой BackupObject просто указывает на тот же объект в памяти, на который указывает CurrentObject. Разве я не клонирую объект правильно? – Shafique

+0

Нет, вам нужно создать новый объект с теми же данными, что и оригинал. Обычно это делается путем реализации интерфейса ICloneable. Итак, если объект был строкой с именем переменной theString, вы должны добавить theString.Clone() в ObservableCollection, который создаст совершенно новый объект String. – timothymcgrath

 Смежные вопросы

  • Нет связанных вопросов^_^