2013-04-22 3 views
1

У меня есть эта коллекцияBinding ObservableCollection строк для шаблонного ListBox

ObservableCollection<string> Urls { get; set; } 

внутри моего контекста данных класса. Я привязка к нему в моем списке:

<ListBox ItemsSource="{Binding Urls}"> 

    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <TextBox Text="{Binding .}" /> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 

</ListBox> 

Данные отображаемый в списке, то два-корреспондент не показанный-вот кнопки с командами Добавить и Удалить работу, а также, однако, изменение TextBox не влияет на содержимое коллекции.

Я пробовал Mode=TwoWay в привязке, но я подумал, что он включен. Я пробовал некоторые другие параметры, такие как Validate = OnPropertyChange, однако до сих пор ничего не обновляется.

Как сделать TextBox внутри этих шаблонных элементов в ListBox действительно обновить свойство класса Urls класса datacontext?

ответ

6

Вы не можете изменять строки; используйте класс оболочки с одним свойством string, затем привяжите TextBox к указанному свойству. Таким образом, строки в свойстве могут быть заменены отредактированными.