Свяжите свои Emails
в ListView и дайте им ItemTemplate с электронной почтой и кнопкой.
Свяжите каждую кнопку с Командой, которая удаляет электронное письмо, передавая электронное письмо для удаления в качестве параметра команды.
Свяжите свой TextBox со свойством - скажем NewEmail
. Сделайте так, чтобы установщик NewEmail
добавил еще одно электронное письмо в базовую коллекцию Emails
, затем уведомите PropertyChanged
о NewEmail
. Получатель всегда должен возвращать пустую строку.
Когда ваш TextBox изменяется (по умолчанию теряется фокус), установщик добавит электронное письмо в электронную почту и очистит текстовое поле. Emails
должно быть свойством, которое возвращает ObservableCollection<Email>
Это также позволит вам проверять, является ли каждое новое письмо реальным адресом электронной почты.
Я обновлю некоторые примеры, если у меня будет время; надеюсь, что это поможет вам в то же время.
Редактировать: Вы также можете изменить текстовое поле UpdateSourceTrigger=PropertyChanged
, если хотите реагировать на новые электронные письма, добавляемые, скажем, через точку с запятой. Это приведет к обновлению свойства при каждом изменении текста, а не к потере фокуса.