2012-03-14 6 views
0

ItemsSource(SsString)はSortedSet文字列ですListBoxはSortedSetにバインドされています。 TextBoxをバインドする方法

ListBoxでTextBox(デフォルトのTextBlockではなく)を使用したいが、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でプロパティをターゲティングすることができます。

私も、私はそれを知っていた前に、私の第二の問題に答えを知るため

+0

おかげで、プラス1(あなたが{Binding .}を使用して、これをバインドすることができるはずですが、それは一方通行だ) - 双方向バインドする方法? – Paparazzi

+0

@Blam: 'TextBox.Text'はデフォルトで' TwoWay'をバインドします([dependency property - metadata properties](http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox)を参照してください。 .text.aspx))パスがある場合、ターゲットに設定されていない場合はエラーがスローされます。 –

+0

ユーザはリスト内の文字列アイテムを編集できるようにしたいが、私は一意性を強制する必要がある。そして、彼らが項目を削除するためにnullを入力した場合。私はObservableCollectionを使用する必要があると思っているので、項目が一意性をチェックできるように項目にアイテムを渡す必要があります。 – Paparazzi

関連する問題