2016-02-18 2 views
0

Возможно ли использовать ссылку на строку как содержимое для TextBox в C#? У меня есть список с кучей объектов. И каждый объект содержит строку. И когда я выбираю объект в списке, я хочу, чтобы его строка была содержимым в TextBox, так что все, что я пишу, сохраняется в строке.TextBox C# refer string

Как и в Java, у вас может быть PlainDocument в объекте, и всякий раз, когда вы выбираете другой объект в JList, вы можете установить документ в JTextField для объектов PlainDocument.

+2

Вы говорите о приложении ASP.NET, WinForms или WPF? – Steve

ответ

0

Вы можете использовать Data Binding для автоматического решения, или вы можете вручную прослушать событие SelectedIndexChanged в списке и установить свойство Text в обработчике событий.

listBox1.SelectedIndexChanged += (o, e) => { 
    object selectedItem = listBox1.SelectedItem; 
    textBox1.Text = selectedItem != null ? selectedItem.ToString() : null; 
}; 
+0

Ty, привязка данных идеально – coalazero

0

Содержание текстового поля можно получить с помощью

myTextBox.Text 

Это свойство ожидает строку, так что ваш ответ Да. Я думаю, просто назначить это свойство.

UPDATE

Я думаю, что нужно что-то вроде этого (если вы используете WinForms):

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if(listBox1.SelectedItem != null) 
      textBox1.Text = listBox1.SelectedItem.ToString(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     int index = listBox1.Items.IndexOf(listBox1.SelectedItem); 
     listBox1.Items.Remove(listBox1.SelectedItem); 
     listBox1.Items.Insert(index, textBox1.Text);    
    } 

Хотя есть действие для TextChanged случае текстового поля в WinForms, но изменение ListBox из есть немного сложно (в конечном итоге вызывает друг друга бесконечно), поскольку мы уже меняем текстовое поле из события изменения списка.

Добавление кнопки для этого упрощает ее.

+0

Это просто скопирует строку из/в TextBox. Я хочу, чтобы она использовала ту же строку, что и в моем объекте, поэтому мне не нужно сохранять ее каждый раз, когда она изменяется и т. Д. – coalazero

+0

Мне жаль, но я не получил этого требования. Вы хотите изменить содержимое текстового поля каждый раз, когда новый элемент выбран из списка? – SamGhatak

+0

Да и каждый раз, когда я пишу в TextBox, я хочу, чтобы текст сохранялся в строке выбранного объекта. – coalazero