問題描述
網格列包含 int64 值,但過濾器顯示字符串並且不起作用/ (Grid column contains int64 values but filter shows strings and doesn't work/)
我們在過濾 devexpress gridcontrol 中的某些列時遇到了問題。我們將列動態(綁定類型列)添加到網格中。源對象的值是 long
類型。在單元格中,值似乎很好(因為它們向右對齊,我們這邊沒有任何自定義格式)但是在過濾器彈出值中表現得像字符串。
例如數據集像 1,2 ,5,11,22,37 過濾器列表排序為 1,11,2,22,5,37(就像字符串一樣),當我們選擇其中一個可用值時,過濾不起作用(我的意思是,網格變成空的)。即使像“非空單元格”這樣的過濾器也不起作用,但是當我們選擇“空單元格”時,即使大多數單元格沒有值,也只會顯示幾千行中的少數。
. FilterItem 對象肯定包含字符串,但是它們應該包含長值。我們如何影響這些的創建,或者至少在哪裡檢查為什麼會這樣創建(我們不手動進行)?
@Edit 19.11.2015 好吧,我有一些突破。由於我們的機制,列('custom')可以很好地猜測它們的類型。然後唯一的問題是,事實上我們的自定義列使用的值存儲在 Dictionary
類集合中,我們認為感謝 PropertyDescriptor
列類型很好,但由於某種原因 FilterItem
對象具有 Value
的字符串。我們相信這是因為 DX 過濾機制無法真正猜測“對象”的類型
參考解法
方法 1:
We've found the solution and the mistake was on our side. Column creation etc is fine. Somewhere deep, someone has changed value types.
(by user2475983、user2475983)