如何监视集合(接口:)的成员何时System.Collections.ICollection
更改?我正在尝试将列的顺序保存在System.Windows.Forms.ListView.Columns
.
我已经为public event ColumnReorderedEventHandler ColumnReordered;
this.MyListView.ColumnReordered += new System.Windows.Forms.ColumnReorderedEventHandler(ColumnReordered);
当我的班级被叫到时:
public void ColumnReordered(object sender, EventArgs e)
{
ListView.ColumnHeaderCollection chc = sender as ListView.ColumnHeaderCollection;
ColumnReorderedEvemtArgs crea = e as ColumnReorderedEventArgs;
if ((chc == null) || (crea == null)) return;
// Prints expected values.
Console.WriteLine("{0} -> {1}", crea.OldDisplayIndex, crea.NewDisplayIndex);
// Prints previous state; NOT current state.
for (int k = 0; k < chc.Count; k++)
{
ColumnHeader columnHeader = chc[k] as ColumnHeader;
if (columnHeader == null)
break;
Console.WriteLine("{0}", columnHeader.DisplayIndex);
}
}
这让我相信这不是我想要保存状态的地方,因为更改尚未反映在返回的对象中 ( sender
)。当用户操作它们时,如何立即保存列的顺序?