いくつかの連絡先が保存されているオブジェクトを含むBindingListがあります。
internal static BindingList<object> contactList;
contactListオブジェクトはより多くのタイプです。SktContact、FBContact、GContact。
これらの連絡先は、contactList_ChangedイベントでlistBoxに追加します。しかし、私はそれらをステータス(最初はオンライン)でソートし、次にアルファベット順にソートしたいと思います。
私はこのように考えたいと思います:
List<object> contactSorted = new List<object>();
contactSorted = Global.contactList.ToList();
contactSorted.OrderBy((status, name) => Converter.getContactAvailabilityStatus(contactSorted[?]), Converter.getContactName(contactSorted[?]));
contactListBox.Items.AddRange(contactSorted.ToArray());
しかし、私はそれをどのように行うべきかわかりません。オブジェクトのリストを再入力して、注文するプロパティを選択できません。
任意のオブジェクトからステータスと名前を取得するメソッドがあります。しかし、どうすればそれを使用して連絡先配列を並べ替えることができますか?
自分の図面を使用しています所有者の図面を修正しました
private void contactListBox_DrawItem(object sender, DrawItemEventArgs e)