2011-05-04 66 views
0

我有一個Visual Studio 2010(C#)的Silverlight 4項目以下情況使用DataGrid(這是爲了簡潔起見僞代碼):查看訂單的DataGrid

public class BaseClass { 
    public string str1; 
    public string str2; 
} 

public class DerivedClass : BaseClass { 
    public string str3; 
    public string str4; 
} 

public List<DerivedClass> SetItemSource(List<DerivedClass> list) { 
    dataGrid.ItemSource = list; 
} 

當我運行的代碼中,列的順序:

STR3 STR4 STR1 STR2

我想他們顯示爲:

STR1 STR2賽車STR3 STR4

是否有這樣做的方法嗎?我發現Silverlight DataGrid非常不靈活。

回答

0

當我只有一個標準類&我想改變列的順序,我使用註釋:

[Display(Order=2)] 
public string str1 { get; set } 

[Display(Order=1)] 
public string str2 { get; set; } 

我只是派生類試過這樣:

public class BaseClass 
    { 
     [Display(Order=1)] 
     public string str1 { get; set; } 
     [Display(Order=3)] 
     public string str2 { get; set; } 
    } 

    public class DerivedClass : BaseClass 
    { 
     [Display(Order=4)] 
     public string str3 { get; set; } 
     [Display(Order=2)] 
     public string str4 { get; set; } 
    } 

我的網格列是:str1 str4 str2 str3按預期。

[編輯] 所需,包括一個使用聲明: using System.ComponentModel.DataAnnotations;使用[顯示...] 我真的很喜歡與兩個gridview的&數據形工作。大多數人恨討厭討厭數據表。它花了很多時間來理解如何使它適合我們的LOB應用程序,但現在它對於UI開發來說非常強大和快速。

另外 - 如果你不熟悉數據註釋,它們絕對是弧度。你可以設置屬性如[Required(true)],[Display(Name =「String 3」)],[StringLength(3,ErrorMessage =「此字段長度不能超過3個字符」)],Range(0,10 ,ErrorMessage =「必須是0-10)」)]等等等等。驗證錯誤自動冒泡到UI。他們在開發過程中大大節省了大量的時間。 [/編輯]