ListBox優化初步(一)

2021-09-06 03:53:37 字數 2096 閱讀 3936

虛擬化可以讓listbox(itemscontrol)的項只有位於顯示區域時才去渲染,大大節約了記憶體和cpu/gpu消耗,對於大量資料可以說是必須的

這裡我們介紹第二種方式

那麼如何使一行容納多個資料呢?答案是在listboxitem中巢狀listbox/itemscontrol

當時經過一番google後發現已經有人解決了該問題,呃,抱歉時間有點長了,原文找不到了,這裡將他的**給出,我自己寫的就不獻醜啦

其原理是將乙個長列表,切分成若干個長度為列數的小列表,下面是實現**:

public class rowadapter: ilist>, inotifycollectionchanged

} private class rowobject : ienumerable

#region ienumerablemembers

public ienumeratorgetenumerator()

}#endregion

#region ienumerable members

system.collections.ienumerator system.collections.ienumerable.getenumerator()

#endregion

}public rowadapter(ilistsourcelist, int columns)

}#region ilist> members

public int indexof(ienumerableitem)

public void insert(int index, ienumerableitem)

public ienumerablethis[int index]

set}

public void removeat(int index)

#endregion

#region icollection> members

public void add(ienumerableitem)

public bool contains(ienumerableitem)

public void copyto(ienumerable array, int arrayindex)

public bool remove(ienumerableitem)

public void clear()

public int count

}public bool isreadonly

}#endregion

#region ienumerable> members

public ienumerator> getenumerator()

}#endregion

#region ienumerable members

system.collections.ienumerator system.collections.ienumerable.getenumerator()

#endregion

#region inotifycollectionchanged members

public event notifycollectionchangedeventhandler collectionchanged;

private void firecollectionchanged()

}private void onsourcecollectionchanged(object sender, notifycollectionchangedeventargs e)

#endregion

private rowobject internalgetrow(int index)

}

那麼如何使用呢?

this.demolist.itemssource = new rowadapter(datagen.gen(), 2);

凸優化 初步理解

1 什麼時候kkt條件可以成為充要條件 2 什麼時候區域性最優解可以成為全域性最優解 上面兩個問題答案顯然就是凸優化問題。3 一般的優化問題與凸優化問題的分水嶺不在於問題本身是線性還是非線性的,有約束還是無約束的,核心問題在於這個問題是凸還是非凸。如果該問題是凸問題,那麼這個問題就已經解決了。凸集的...

listbox控制項的一些操作

1.屬性列表 selectionmode 元件中條目的選擇型別,即多選 multiple 單選 single rows 列表框中顯示總共多少行 selected 檢測條目是否被選中 selecteditem 返回的型別是 listitem 獲得列表框中被選擇的條目 count 列表框中條目的總數 s...

listbox控制項的一些操作

1.屬性列表 selectionmode 元件中條目的選擇型別,即多選 multiple 單選 single rows 列表框中顯示總共多少行 selected 檢測條目是否被選中 selecteditem 返回的型別是 listitem 獲得列表框中被選擇的條目 count 列表框中條目的總數 s...