#c# #wpf #listbox
#c# #wpf #listbox
Вопрос:
Я хочу переместить элемент управления textbox1 внутри элемента управления listbox1 на место выбранного элемента listbox во время выполнения. Допустим, выбранное место внутри списка равно 1. Я работаю в приложении c # wpf внутри сетки.
Кто-нибудь знает?
Комментарии:
1. Ваш вопрос довольно запутанный, он с трудом разборчив, и в названии написано «переместить» , в то время как в первом предложении вы говорите «копировать» , что не совсем одно и то же, далее вам не нужно упоминать C # и WPF в вашем вопросе, поскольку эта информация уже есть в тегах.
Ответ №1:
Я думаю, что вы действительно хотите сделать, это TextBox.Text
привязать его к текущему выбранному элементу списка. Вот пример:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBox x:Name="MyTextbox" Width="100" Margin="2" VerticalAlignment="Top"
Text="{Binding Path=SelectedItem.Content, ElementName=MyListBox}"/>
<ListBox x:Name="MyListBox" Margin="2" Grid.Column="1">
<ListBox.Items>
<ListBoxItem>Item1</ListBoxItem>
<ListBoxItem>Item2</ListBoxItem>
<ListBoxItem>Item3</ListBoxItem>
</ListBox.Items>
</ListBox>
</Grid>
Комментарии:
1. Это просто копирует строки item1, item2, item3 в textbox1. Я могу сделать это в cs, чтобы я мог копировать, изменять его, удалять, добавлять … но я хочу, чтобы мой элемент управления textbox1 был перемещен туда, где находится выбранный элемент listbox1, а не копировать строку listbox в textbox.
Ответ №2:
Это сделает:
Private Sub MoveTextBox(TxtBox as TextBox, LBox as listbox, index as integer)
lBox.items.remove(lbox.indexof(TxtBox));
Dim l as ListBoxItem = lBox.items(index);
l.content = TxtBox;
End Sub
Просто напишите MoveTextBox (Какое текстовое поле вы хотите переместить, список, к которому принадлежит txtbox и в который вы хотите переместить, индекс, в который вы хотите переместить текстовое поле (помните, что индекс начинается с 0)
Извините, я не знаю, как заставить это работать с C #.