由于我创建的几乎所有项目都包含ListViews,因此我想到了一个包含修改ListView的所有重要函数的Class。它看起来像这样:
的MainForm:
ListViewFunctions LVF = new ListViewFunctions();
ListView newLV = new ListView();
newLV = LVF.AddItem(newLV, new List<string> { "item", "subitem1", "subitem2" });
类别:
Public class ListViewFunctions
{
public ListView AddItem(ListView LV, List<string> InputStrings)
{
if (InputStrings.Count > 0)
{
for (int i = 0; i < InputStrings.Count; i++)
{
if (i == 0)
LV.Items.Add(InputStrings[0]);
else
LV.Items[LV.Items.Count - 1].SubItems.Add(InputStrings[i]);
}
}
return LV;
}
}
但是我不确定将控件传递给上面的类是否会被认为是危险的,也不会影响性能。所以我希望有人可以回答它是否安全。
提前致谢!
答案 0 :(得分:4)
如果我计划将其设为通用的话,我可能只会使用辅助类,所以我可以在其他类型上使用该类。
通过扩展ListView
来创建自定义控件可能是实现额外ListView
方法的首选方法。
public class MyCustomListView : ListView
{
//...
}
答案 1 :(得分:1)
只要你担心,如果不同时被不同的线程操纵,这可能导致同步问题导致同样的碎片或不稳定的对象状态,那么传递类引用是完全有效的到其他班级 从软件工程的角度来看,它会影响可维护性和错误跟踪,如建议的那样,尝试扩展ListView类,如下所示:
public static HelperClass
{
public static void AddItems(this ListView, params string[] itemsToAdd)
{
// to-do
}
}
答案 2 :(得分:0)
有时共享用户控件很有意义。但是,大多数情况下,情况并非如此。当这种技术很有用时,它非常有用。但是,只有在必要时才使用它,因为大多数时候它会使您的应用程序变得不必要复杂