Содержимое выбранного элемента в текстовом блоке - PullRequest
2 голосов
/ 25 октября 2011

Я уверен, что есть простое решение, но сейчас я не могу его найти.

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

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

    selectionText.Text = "This is the " + selection;

}

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

"Это System.Windows.Controls.ListBoxItem"

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

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

Ответы [ 6 ]

3 голосов
/ 25 октября 2011

Вы можете ссылаться на свойство Content объекта ListBoxItem

selectionText.Text= "This is the " + selection.Content.ToString();
1 голос
/ 25 октября 2011
string selText = selection.Items[selection.SelectedIndex].Text;
0 голосов
/ 25 октября 2011

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

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

Где list - это имя моего ListBox.

0 голосов
/ 25 октября 2011

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

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

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

}
0 голосов
/ 25 октября 2011

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

Convert.ToString(TextListBox.SelectedItem);

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

0 голосов
/ 25 октября 2011

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

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;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...