Список содержимого выбранного элемента в текстовый блок

#c# #windows-phone-7 #listbox

#c# #windows-phone-7 #список

Вопрос:

Я уверен, что для этого есть простое решение, но, похоже, я не могу его найти на данный момент.

Я пытаюсь отключить содержимое списка выбора в текстовом блоке в виде текста, используя приведенный ниже код.

 private void SelectionToText(object sender, EventArgs e)
{
    ListBoxItem selection = (ListBoxItem)TextListBox.SelectedItem;

    selectionText.Text = "This is the "   selection;

}
  

По какой-то причине текстовый блок просто отображается

«Это система.Windows.Элементы управления.Элемент списка «

Сначала я подумал, что это потому, что я не преобразовал в строку, но это тоже не сработало.

Есть предложения?

Комментарии:

1. Сначала не приводите к элементу списка. Каков тип вашего содержимого ListBox?

2. @EugeneCheverda Содержимое списка — строка, например.. «item1»

Ответ №1:

Вы можете ссылаться на свойство содержимого элемента списка

 selectionText.Text= "This is the "   selection.Content.ToString();
  

Комментарии:

1. Спасибо за это, я не могу поверить, что пропустил это. Я думаю, мне нужно немного поспать. Это сработало нормально. Приветствия.

Ответ №2:

 string selText = selection.Items[selection.SelectedIndex].Text;
  

Ответ №3:

Вы можете создать пользовательский класс

 public class MyListBoxItem
{
    public MyListBoxItem(string value, string text)
    {
        Value = value;
        Text = text;
    }

    public string Value { get; set; }
    public string Text { get; set; }

    public override string ToString()
    {
        return Text;
    }
}
  

Добавьте элементы в свой ListBox лайк:

 listBox1.Items.Add(new MyListBoxItem("1", "Text"));
  

И это будет работать

 private void SelectionToText(object sender, EventArgs e)
{
    MyListBoxItem selection = (MyListBoxItem)TextListBox.SelectedItem;

    selectionText.Text = "This is the "   selection;

}
  

Ответ №4:

Если я не ошибаюсь, вам нужно выполнить следующий код

 Convert.ToString(TextListBox.SelectedItem);
  

Это вернет значение SelectedItem

Ответ №5:

Пожалуйста, напишите так:

 private void SelectionToText(object sender, EventArgs e)
{
    MyListBoxItem selection = (MyListBoxItem)TextListBox.SelectedItem;

    selectionText.Text = "This is the "   selection.Content.ToString();

}
  

Ответ №6:

Или вы можете сделать это без кода, в silverlight, привязав свойство text текстового блока к свойству selecteditem.content списка.

 <TextBlock Text="{Binding SelectedItem.Content, ElementName=list}"/>
  

Где список — это имя моего списка.