我有一个ListBox的元素,我需要显示的元素,我有工作,但我想添加一个选项来删除选定的项目,这里是问题...我删除它,但我是从列表框中删除而不是从元素类,我能做些什么来从树中删除项目?这里是我的代码:复合设计模式
表1:
private void btnBuildPartsList_Click(object sender, EventArgs e)
{
Assembly topWidget = new Assembly("Main Assembly", 1);
Assembly chassis = new Assembly("Chassis", 1);
Assembly display = new Assembly("Display", 1);
Assembly powerSupply = new Assembly("Power Supply", 1);
Part bolt = new Part("Bolt", 24);
Part mainCase = new Part("Case", 1);
Part screen = new Part("Screen", 3);
Part displayElectronics = new Part("Display Electronics", 3);
Part transformer = new Part("Transformer", 1);
Part powerBoard = new Part("Power Board", 1);
Part ductTape = new Part("Duct Tape", 5);
Part gum = new Part("Bubble Gum", 25);
topWidget.Add(chassis);
topWidget.Add(display);
topWidget.Add(powerSupply);
chassis.Add(mainCase);
chassis.Add(bolt);
display.Add(screen);
display.Add(displayElectronics);
powerSupply.Add(transformer);
powerSupply.Add(powerBoard);
topWidget.Add(ductTape);
topWidget.Add(gum);
DisplayPartsList(topWidget);
}
private void DisplayPartsList(Assembly topWidget)
{
List<string> partsList = new List<string>();
topWidget.WritePartsList(partsList);
listParts.Items.Clear();
listParts.Items.AddRange(partsList.ToArray());
}
,这里是我的组装类:
namespace Composite
{
public class Assembly : BaseAssembly
{
private List<BaseAssembly> elements = new List<BaseAssembly>();
public Assembly(string name, int quantity)
: base(name, quantity)
{
}
public override void Add(BaseAssembly assembly)
{
elements.Add(assembly);
}
public override void Remove(BaseAssembly assembly)
{
elements.Remove(assembly);
}
public override void WritePartsList(List<string> list)
{
list.Add(Quantity.ToString() + " - " + Name);
foreach (BaseAssembly assembly in elements)
{
assembly.WritePartsList(list);
}
}
}
}
我认为这个代码就足够了,其他所有的代码,它就像在其它复合设计模式代码,现在,我该如何去除项目功能?从我的列表框中选择x
元素。就像我在从the listbox
中删除该项目之前所说的,但我想从全班级中删除它。提前致谢。
[连接列表到列表框](https://stackoverflow.com/questions/33623991/connect-listt-to-a-listbox) –
@RezaAghaei好吧,我明白,但我不明白如何将该代码应用于我的项目,你能解释我的方法吗?我真的在努力,但我不知道该怎么做 – User1899289003