#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}"/>
Где список — это имя моего списка.