System.Windows.ListViewItem.Subitems
データ型であるコレクションにデータを追加していListViewItem.ListViewSubItemCollection
ます。データのコレクションに追加されたアイテムに関連付けられた順序がないことはわかっています。したがって、任意の順序でコレクションにデータを入力しても、データ ストアには影響しません。(編集:コレクションは、データが順序付けされていないセットと同じではないことがわかりました)。
コレクション内の各データがどの列に割り当てられ、表示されるかを制御するにはどうすればよいですか? 現在、私のデータが表示されていますが、任意に割り当てられているようです。
データの表示方法には一定の順序がありますが、少し飛び回っています...
public LogMessageItem ( LoggerItem parent, LogMessage logMsg )
{
Parent = parent;
Message = logMsg;
string parentName = Parent.Name;
if( (Parent.Name == logMsg.ThreadName) && (Parent.Parent != null) )
parentName = Parent.Parent.Name;
Item = new ListViewItem ( logMsg.TimeStamp.ToString ( UserSettings.Instance.TimeStampFormatString ) ); // Create List View Item
Item.SubItems.Add ( logMsg.Level.Name ); // Appears in column 0
Item.SubItems.Add ( parentName ); // value is null
Item.SubItems.Add ( logMsg.ThreadName ); // Appears in column 6
string msg = logMsg.Message.Replace ( "\r\n", " " );
msg = msg.Replace ( "\n", " " );
Item.SubItems.Add ( msg ); // Appears in column 7
Item.ToolTipText = msg;
Item.ForeColor = logMsg.Level.Color;
Item.Tag = this;
}
おそらく、列ヘッダーの初期化方法に基づいてデータを入力する方法に優先順位がありますか?
上記の例のデータは適切に表示されていますが、これを編集するときに、列 8 以降を埋めたいと思います。を含む行の後にこのコードを編集するまで、既存の列 0 ~ 7 は正しく表示されていますItem.Tag = this;
。それが行うことは、列3、4、5、8、9、10、11、12、13、14などにデータを追加し始めることです...