Переместить элемент управления текстовым полем на место выбранного элемента внутри списка

#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 #.