LIstbox选择项目内容到文本块

时间:2011-10-25 10:22:01

标签: c# windows-phone-7 listbox

我确信这有一个简单的解决方案,但我现在似乎无法找到它。

我试图使用以下代码将文本块中选择列表框的内容显示为文本。

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

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

}

由于某种原因,文本块只显示

  

“这是System.Windows.Controls.ListBoxItem”

我最初认为这是因为我没有转换为字符串,但这也不起作用。

有什么建议吗?

6 个答案:

答案 0 :(得分:3)

您可以引用ListBoxItem的Content属性

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您可以创建自定义类

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;

}

答案 3 :(得分:0)

如果我没错,您需要执行以下代码

Convert.ToString(TextListBox.SelectedItem);

这将返回SelectedItem

的值

答案 4 :(得分:0)

请写下:

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

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

}

答案 5 :(得分:0)

或者你可以通过将textblock的text属性绑定到列表框的selecteditem.content属性,在silverlight中没有代码。

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

其中list是我的ListBox的名称。