Привязать список текстовых полей внутри списка в wpf
Я должен сделать список с текстовым полем в нем... и он должен быть динамичным. У меня есть заметная коллекция в коде, и я хочу связать это для списка. Я хочу динамический список, и этот список должен иметь редактируемое текстовое поле. Итак, в основном я хочу связать текстовое поле multiplr из списка. Любая помощь будет оценена
<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>
Делая это, я получаю количество текстовых полей, таких же, как элементы в наблюдаемой коллекции, но текст текстового поля не настраивается.
2 ответа
Вы должны будете привязать свое текстовое поле к свойству в вашем классе, к какой наблюдаемой коллекции вы привязали
<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>
Если предметы в вашем ObservableCollection
просто string
s, то вы можете связать данные со всем строковым значением следующим образом:
<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList" Text="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
От Binding.Path
Страница свойств на MSDN:
При желании можно использовать точку (.) Для привязки к текущему источнику. Например,
Text="{Binding}"
эквивалентноText="{Binding Path=.}"
,
Обратите внимание, что если у вас есть несколько объектов со свойствами в коллекции, то ответ @nit будет правильным, так как вам нужно будет ссылаться на соответствующее имя свойства:
<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList" Text="{Binding PropertyName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>