Bind TextBox List Inside ListBox in WPF
-
21-12-2019 - |
Domanda
Devo effettuare la casella di riepilogo con TextBox in esso ... e deve essere dinamico.Ho una raccolta osservabile nel codice dietro e voglio legarlo per listbox.Voglio la casella di riepilogo dinamica e questo elenco dovrebbe avere una casella di testo modificabile in esso.Quindi, in pratica voglio associare la casella di testo multiplr da elenco.Qualsiasi aiuto sarebbe apprezzato
<ListBox HorizontalAlignment="Left" Name="ListTwo" Height="100" Margin="286.769,165.499,0,0" VerticalAlignment="Top" Width="100" ItemsSource="{Binding Source=obs}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList"></TextBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
.
In questo modo, ho il numero di textbox come gli articoli nella collezione osservabile, ma il testo della casella di testo non è impostato.
Soluzione
Dovrai vincolare la tua casella di testo alla proprietà nella tua classe di quale raccolta osservabile hai legato
<ListBox HorizontalAlignment="Left" Name="ListTwo" Height="100" Margin="286.769,165.499,0,0" VerticalAlignment="Top" Width="100" ItemsSource="{Binding Source=obs}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Binding="{Binding PROPERTYINCLASS}"></TextBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
. Altri suggerimenti
Se gli elementi nel ObservableCollection
sono solo semplici generatori di generazioneGodes, quindi è possibile legarsi a tutto il valore stringa come questo:
<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList" Text="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
.
Dal string
Property Pagina su MSDN:
.Opzionalmente, un percorso (.) può essere utilizzato per legare alla sorgente corrente.Ad esempio,
Binding.Path
è equivalente aText="{Binding}"
.
Nota che se avete avuto alcuni oggetti con proprietà nella raccolta, allora la risposta di @ NIT sarebbe stata corretta come dovresti fare riferimento al nome della proprietà pertinente:
<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList" Text="{Binding PropertyName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
.