我有一個列表框,其ItemSource綁定到CollectionViewSource
。 CVS來源是XmlDataProvider
。所以列表框列出了我指定的所有節點(名稱屬性)。 現在這些節點有屬性,我希望列表框被它們排序。 問題是,由於底層數據是xml,每個值(節點的屬性)都是一個字符串,但其中一些值表示數值。由於使用CollectionViewSource.SortDescriptions.add (...)
進行排序將按字母順序對這些(字符串)值進行排序,因此2,10,5的排序將按10,2,5而不是2,5,10進行排序。 我該如何解決這個問題?在列表框中排序的數字字符串
如果解決方案位於ListView的CustomSort中,有人請給我一個關於如何使用底層XmlDocument的快速例子嗎?
我認爲這會像編寫實現IComparer的類一樣簡單,但不知何故我迷路了。 我想將屬性的名稱傳遞給方法,所以我可以從CVS中「提取」所有這些屬性,將它們轉換爲float(在這種情況下)並將它們與標準函數進行排序... 但是我完全失去了對這個CustomSort是如何工作的,說實話....
希望這是可能的,而不開溝XmlDocument的,因爲它是一種給定的:)
問候
如果您正在閱讀的數據中只有一部分是數字,那麼您打算如何實施整體排序?我的意思是,如果你有一個2,10,5,5a的序列,那應該怎麼看?是否所有的非數字都在按數字順序排序的數字之前或之後? –
沒有字母數字字符串。只是像「名稱」這樣的屬性可以被解釋爲字符串並像他們一樣排序,但其他像「年齡」那樣存儲爲sting(因爲它是一個XmlAttribute),但我希望它被作爲數值處理。在其他部分,我只是使用轉換器來實現這一點,但我不知道如何告訴特定的sortdescription先轉換,或者如何解決這個問題,而不是使用xmldocument,而是爲數據結構創建一個自己的類。不幸的是,這是出了問題..... – ch40s