LIstbox选择项目内容到文本块

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

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

private void SelectionToText(object sender, EventArgs e) { ListBoxItem selection = (ListBoxItem)TextListBox.SelectedItem; selectionText.Text = "This is the " + selection; } 

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

“这是System.Windows.Controls.ListBoxItem”

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

有什么建议?

您可以引用ListBoxItem的Content属性

 selectionText.Text= "This is the " + selection.Content.ToString(); 
 string selText = selection.Items[selection.SelectedIndex].Text; 

您可以创建自定义类

 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; } 

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

 Convert.ToString(TextListBox.SelectedItem); 

这将返回SelectedItem的值

请写成:

 private void SelectionToText(object sender, EventArgs e) { MyListBoxItem selection = (MyListBoxItem)TextListBox.SelectedItem; selectionText.Text = "This is the " + selection.Content.ToString(); } 

或者,您可以通过将文本块的text属性绑定到列表框的selecteditem.content属性,在Silverlight中无需代码。

  

其中list是我的ListBox的名称。