2012-03-14 3 views
0

ItemsSource (SsString) является строкой SortedSetListBox привязан к SortedSet. Как привязать TextBox?

Я хочу использовать TextBox (не TextBlock по умолчанию) в ListBox, но я не могу понять, как привязать к значению в SortSet.

Я пробовал привязку без пути, ключ, ключ, значение и значение.

<ListBox ItemsSource="{Binding Path=SsString}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <TextBox Text="{Binding Path=Key}"/> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

Следующие работы, но он отображает TextBlock.

<ListBox ItemsSource="{Binding Path=SsString}" /> 

ответ

1

Вы не сможете редактировать связанные значения. Вам нужен класс в качестве элемента, чтобы вы могли настроить объект с помощью Binding.Path.

(Вы должны быть в состоянии связать это с помощью {Binding .}, но это односторонний)

+0

Спасибо и плюс 1 для зная ответ на мою вторую проблему, прежде чем я даже знал, что у меня было - как связать двухсторонний ? – Paparazzi

+0

@Blam: для 'TextBox.Text' привязывается' TwoWay' по умолчанию (см. [Свойство зависимостей - свойства метаданных] (http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox .text.aspx)), если у вас есть путь, если у объекта target не установлен сеттер, он выдает ошибку. –

+0

Я хочу, чтобы пользователь мог редактировать строковые элементы в списке, но мне нужно обеспечить уникальность. И если они вводят нуль, чтобы удалить элемент. Я думаю, что мне нужно использовать ObservableCollection, а также передать коллекцию элементу, чтобы элемент мог проверить уникальность. – Paparazzi