也許這已被回答,但我無法在Google上找到。如果這是我的道歉。我有一個SortedObservableCollection<TargetViewModel>
,我試圖從字母順序中獲取基於TargetViewModel
上的字符串屬性的字母順序。我在TargetViewModel
上實現了CompareTo
,問題是有一個特殊的常量選項卡,其字符串屬性只是我們用來添加新選項卡的一種+符號。這需要放在所有選項卡的右側,並在+符號之前添加任何新選項卡,以及在始終位於最左邊位置的常量選項卡之後。有沒有一種方法可以指定製表符,即在左側和右側,並將所有制表符排列在兩者之間?即| MainTab | Tab A | Tab 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有排序;看來分類純粹是爲了觀點。如果是這樣的話,也許你應該看看在視圖上使用「CollectionViewSource」(以及自定義分類器),而不是使用'SortedObservableCollection'。 –