2012-05-07 45 views
0

所以我只包含保存在運行時產生的動態查詢預覽數據一XamDataGrid一個簡單的窗口...XamDataGrid動態字段格式不佳

public partial class DataPreview : Window 
{ 
    public DataTable Data { get; set; } 
    public DataPreview(string SQL) 
    { 
     InitializeComponent(); 

     this.DataContext = this; 
     Data = DatabaseManager.ExecuteQuery(SQL); 
    } 
} 

我曾經數據綁定到的數據源XamDataGrid ...

<igDP:XamDataGrid DataSource="{Binding Data}" ScrollingMode="Immediate"> 
    <igDP:XamDataGrid.FieldSettings> 
      <igDP:FieldSettings 
      AllowEdit="False"/> 
    </igDP:XamDataGrid.FieldSettings> 
</igDP:XamDataGrid> 

現在,這一切工作正常,問題是在XamDataGrid編輯器中的字段的數據類型有時不匹配的數據類型。例如,所有的數字都顯示一個美元符號。我試圖加入這一行...

EditAsType="{x:Type sys:String}" 

哪個固定的一切,除了實際的貨幣金額,現在顯示爲不帶美元符號xx.xxxx。我在網上找到的所有解決方案似乎都是直接在xaml中編輯字段,但由於字段都是動態的,因此這不是一種選擇。有什麼我可以做的在xaml中正確設置編輯器嗎?或者我可以在代碼中執行一些例程以將數據按摩到XamDataGrid中正確顯示?任何人都可以使用XamDataGrid以與所有動態列相關的方式共享任何代碼,但是能夠根據數據類型正確格式化它們?

回答

2

用於特定類型字段的編輯器可以使用ValueEditor.RegisterDefaultEditorForType進行設置。如果編輯器是正確的類型,並且您希望更改給定類型的掩碼,則可以使用XamMaskedEditor.RegisterDefaultMaskForType

如果您希望爲相同類型的不同字段設置不同的掩碼或編輯器,那麼在創建FieldLayout之後,您需要在代碼中執行此操作。爲此,您可以使用FieldLayoutInitialized event

+0

我到底該如何使用ValueEditor.RegisterDefaultEditorForType方法?你有鏈接到一個簡單的例子嗎? –

+0

在這篇文章中有一個例子:http://community.infragistics.com/forums/p/33674/183177.aspx#183177 – alhalama

+0

我只是有點困惑在這個例子中,值編輯器類是什麼,我不能從XamDataGrid中調用此方法,它似乎是編輯器本身的靜態方法,這對於如何實際解決問題沒有多大意義。 –