我想允许用户通过双击并像在列表框中的重命名模式一样输入或通过消息框来编辑列表框字符串的一部分,这确实如此。该值是双精度值,我希望结果同时反映在 listBox 和实际列表中。
这是我的清单,我需要编辑成本:
public BindingList<Edge> edgeList = new BindingList<Edge>();
这是我的 ToString 函数:
public override string ToString()
{
return string.Format("Cost: {0}, Start: {1}, End: {2}", (int)_cost, _start, _end);
}
这将添加到我的列表中:
pfi.ni.edgeList.Add(e1);
这就是我在列表框中出现新属性时添加新属性的方式:
listBox2.Items.Add(e1);
我已经为我的 listBox 设置了 selectedIndexChanged 事件并且可以获取它,因此如果单击它会显示属性的成本,我猜它现在只是在编辑它。
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
Edge selectedItem = listBox1.SelectedItem as Edge;
result = MessageBox.Show(string.Format("Cost: {0}", e1._cost));
//selectedItem._cost doesn't work for some reason, so I use e1._cost
//until I can figure it out
}