WPF Devx GridControl 中的动态数据绑定

发布于 2024-11-03 10:03:13 字数 333 浏览 7 评论 0原文

我正在开发 WPF 应用程序(MVVM)并使用 DevExpress GridCOntrol。 我需要创建一个通用屏幕来显示来自多个具有参考数据的表(一次显示一个)的数据。 因此,网格控件需要绑定到一个数据集,该数据集可以包含不同数量的列,具体取决于正在查询的表。

问题:

1)我的数据访问层应该返回什么类型的对象? 目前我只能想到数据集/数据表..还有其他选择吗 因为我真的想避免使用数据集和数据表..也许是字典? 返回此类数据的最佳方式是什么?

2)如果我返回 Dataset/DataTable 之外的其他内容,如何将我的 GridControl 与此动态数据集合绑定?

多谢。

I'm working on a WPF application ( MVVM) and using the DevExpress GridCOntrol.
I need to create a generic screen to display data from multiple tables ( displaying one at a time) which have reference data.
So the grid control needs to bind to a dataset which can contain differnt number of columns depending on the table being queries.

Questions:

1) What type of object should my data access layer return?
At present I can only think of a Dataset /DataTable.. is there any other alternative
as I really want to avoid using datasets and datatables .. a dictionay perhaps ?
Whats the best way to return such data ?

2) In case I return something besides a Dataset/DataTable , how do I bind my GridControl with this dynamic data collection ?

Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

杀お生予夺 2024-11-10 10:03:13

我过去曾成功地使用过与此类似的方法

http://www.paulstovell.com/dynamic -数据网格

public class Property : INotifyPropertyChanged
{
    public Property(string name, object value)
    {
        Name = name;
        Value = value;
    }

    public string Name { get; private set; }
    public object Value { get; set; }
}


public class Record
{
    private readonly ObservableCollection<Property> properties = new ObservableCollection<Property>();

    public Record(params Property[] properties)
    {
        foreach (var property in properties)
            Properties.Add(property);
    }

    public ObservableCollection<Property> Properties
    {
        get { return properties; }
    }
}
<DataGrid 
   Name="dataGrid" 
   AutoGenerateColumns="false" 
   ItemsSource="{Binding Path=Records}"/>

I've used an approach similar to this in the past with success

http://www.paulstovell.com/dynamic-datagrid

public class Property : INotifyPropertyChanged
{
    public Property(string name, object value)
    {
        Name = name;
        Value = value;
    }

    public string Name { get; private set; }
    public object Value { get; set; }
}


public class Record
{
    private readonly ObservableCollection<Property> properties = new ObservableCollection<Property>();

    public Record(params Property[] properties)
    {
        foreach (var property in properties)
            Properties.Add(property);
    }

    public ObservableCollection<Property> Properties
    {
        get { return properties; }
    }
}
<DataGrid 
   Name="dataGrid" 
   AutoGenerateColumns="false" 
   ItemsSource="{Binding Path=Records}"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文