开发者

View order of derived class variables in Silverlight DataGrid

I have the following situation in a Visual Studio 2010 (C#) Silverlight 4 project using the DataGrid (this is ps开发者_运维问答eudocode for brevity sake):

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;
}

When I run the code, the columns are in the order:

str3 str4 str1 str2

I would like them to display as:

str1 str2 str3 str4

Is there any way of doing this? I am finding the Silverlight DataGrid to be very inflexible.


When I have just a standard class & I want to change the ordering of the columns, I use annotations:

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

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

I just tried this with derived classes:

 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; }
    }

My grid columns were: str1 str4 str2 str3 as expected.

[EDIT] Needed to include a using declaration: using System.ComponentModel.DataAnnotations; to use [Display...] I really enjoy working with both the gridview & the dataform. Most people hate hate hate the dataform. Its taken many frustrating hours to understand how to make it fit/work within our LOB apps, but now it's incredibly powerful and blazing fast for UI dev.

Also - if you're not familiar with Data Annotations, they're absolutely rad. You can set attributes like [Required(true)], [Display(Name="String 3")], [StringLength(3,ErrorMessage="This field can not exceed 3 characters in length")], Range(0,10,ErrorMessage="Must be 0-10)")] etc etc. The validation errors auto bubble up to the UI. They've saved seriously crazy amounts of time in our dev process. [/EDIT]

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜