Binden Sie die Textfeldliste in das Listenfeld in WPF
-
21-12-2019 - |
Frage
Ich muss eine Listbox mit einer Textbox darin erstellen ...und es muss dynamisch sein.Ich habe eine beobachtbare Sammlung im Code dahinter und möchte diese für die Listbox binden.Ich möchte ein dynamisches Listenfeld und diese Liste sollte ein bearbeitbares Textfeld enthalten.Im Grunde möchte ich das Multiplr-Textfeld aus dem Listenfeld binden.Jede Hilfe wäre dankbar
<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>
Auf diese Weise habe ich die gleiche Anzahl an Textfeldern wie die Elemente in der beobachtbaren Sammlung, aber der Text des Textfelds ist nicht eingerichtet.
Lösung
Sie müssen Ihr Textfeld in Ihrer Klasse in Ihrer Klasse in Ihrer Klasse binden, welche beobachtbare Sammlung Sie gebunden haben
generasacodicetagpre.Andere Tipps
Wenn die Artikel in Ihrem ObservableCollection
sind einfach nur schlicht string
s, dann können Sie die Daten wie folgt an den gesamten String-Wert binden:
<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList" Text="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Von dem Binding.Path
Eigentum Seite auf MSDN:
Optional kann ein Punktpfad (.) zur Bindung an die aktuelle Quelle verwendet werden.Zum Beispiel,
Text="{Binding}"
ist äquivalent zuText="{Binding Path=.}"
.
Beachten Sie, dass die Antwort von @nit korrekt gewesen wäre, wenn Sie einige Objekte mit Eigenschaften in der Sammlung hätten, da Sie auf den entsprechenden Eigenschaftsnamen verweisen müssten:
<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList" Text="{Binding PropertyName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>