これは既に回答済みですが、Google上で見つけることができませんでした。それがあったなら私は謝罪します。 TargetViewModel
の文字列プロパティに基づいてAからZのアルファベット順に取得しようとしているSortedObservableCollection<TargetViewModel>
があります。私はTargetViewModel
にCompareTo
を実装しましたが、問題は、文字列プロパティが新しいタブを追加する方法として使用している+記号である特別な定数タブがあることです。これはすべてのタブの右側にある必要があり、+タブの前とタブの後ろにタブを追加する必要があります。タブの後には常に最も左の位置にする必要があります。タブに指定する方法はありますか?それは左側と右側にあり、2つのタブの間にすべてのタブを並べます。すなわち|メインタブ| |タブB |タブC | + |C#SortedObservableCollectionオブジェクトの文字列プロパティ
は、ここに私のCompareTo
機能は次のようになります。
public int CompareTo(object obj)
{
if (obj == null)
return 1;
TargetViewModel tvm = obj as TargetViewModel;
if (tvm != null)
{
return string.Compare(tvm.Header, Header, StringComparison.CurrentCultureIgnoreCase);
}
throw new ArgumentException("Object is not a TargetViewModel");
}
あなたの投稿からは、 'TargetViewModel'sがソートされているロジックベースの理由がないようです。それはソートが純粋にビューのためであるようです。そのような場合は、 'SortedObservableCollection'の代わりに(カスタムソートと一緒に)ビューの' CollectionViewSource'を使うべきでしょう。 –