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的名称。