2

由于我创建的几乎所有项目都包含 ListView,因此我想到了创建一个包含修改 ListView 的所有重要功能的类。它看起来像这样:

主窗体:

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;
    }
}

但是我不确定将控件传递给像上面这样的类是否被认为是危险的,也不知道它会如何影响性能。所以我希望有人可以回答它是否安全。

提前致谢!

4

3 回答 3

4

如果我打算使其通用,我可能只会使用你所做的帮助类,以便我可以在其他类型上使用该类。

通过扩展创建自定义控件ListView可能是实现额外方法的更好ListView方法。

public class MyCustomListView : ListView
{

//...

} 
于 2013-07-19T11:31:19.770 回答
1

只要您担心,如果它没有同时被不同的线程操作,这可能会导致同步问题,从而导致对象状态混乱或不稳定,那么
从软件工程的角度来看,将类引用传递给其他类是完全有效的,它会影响可维护性和错误跟踪,如建议的那样,尝试像这样扩展 ListView 类:

public static HelperClass
{
  public static void AddItems(this ListView, params string[] itemsToAdd)
  {
     // to-do
  }
} 
于 2013-07-19T11:21:33.250 回答
0

有时共享用户控件很有意义。然而,大多数时候,情况并非如此。当这种技术有用时,它就非常有用。但是,仅在必要时使用它,因为大多数情况下它会使您的应用程序变得不必要地复杂

于 2013-07-19T11:25:46.440 回答