我确信这有一个简单的解决方案,但我现在似乎无法找到它。
我试图使用以下代码将文本块中选择列表框的内容显示为文本。
private void SelectionToText(object sender, EventArgs e)
{
ListBoxItem selection = (ListBoxItem)TextListBox.SelectedItem;
selectionText.Text = "This is the " + selection;
}
由于某种原因,文本块只显示
“这是System.Windows.Controls.ListBoxItem”
我最初认为这是因为我没有转换为字符串,但这也不起作用。
有什么建议吗?
答案 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的名称。