相关疑难解决方法(0)

数据绑定动态数据

我有一组"动态数据",我需要绑定到GridControl.到目前为止,我一直在使用标准的DataTable类,它是System.Data命名空间的一部分.这工作得很好,但我被告知我不能使用它,因为它对于客户端和服务器之间的网络序列化太重了.

所以我认为我可以通过简单地使用List<Dictionary<string, object>>List表示行集合的类型来轻松复制DataTable类的"简化"版本,并且每个Dictionary表示一行,其中列名称和值为KeyValuePair类型.我可以设置Grid以使列DataField属性与Dictionary中的键匹配(就像我为DataTable的列名所做的那样).

但是做完之后

gridControl.DataSource = table;
gridControl.RefreshDataSource();
Run Code Online (Sandbox Code Playgroud)

网格没有数据......

我想我需要实施IEnumerator- 对此的任何帮助都将不胜感激!

示例调用代码如下所示:

var table = new List<Dictionary<string,object>>();

var row = new Dictionary<string, object>
{
    {"Field1", "Data1"},
    {"Field2", "Data2"},
    {"Field3", "Data3"}
};

table.Add(row);

gridControl1.DataSource = table;
gridControl1.RefreshDataSource();
Run Code Online (Sandbox Code Playgroud)

c# data-binding winforms

28
推荐指数
1
解决办法
2万
查看次数

通过.NET中的某种接口使属性可用于数据绑定?

我有一个以特定方式实现属性的类,以处理业务逻辑系统的一些自定义需求.

这种"特定方式"使得属性在数据绑定的上下文中不可操作.基本上,如果我将类的对象放到表单上,数据绑定在对象上找不到任何内容,并且该对象的属性检查器虽然列出了属性,但不允许我编辑它们.

我想知道的是,如果有一个接口或类似的东西,我可以在我的类中实现,它将向表单设计器报告可以绑定的属性,并实现代表数据绑定系统所需的自定义代码.我的财产.

请注意,我不需要在属性检查器中编辑对象的属性值,这只是属性非功能性的一个示例.我只需要数据绑定支持.

是否有这样的界面,如果是这样,它是什么?

我们举一个简单的例子.

我们假设我有这门课程:

public class CustomDataBinding : Component
{
    private Dictionary<String, Object> _Properties = new Dictionary<String, Object>();

    public CustomDataBinding()
    {
        _Properties["Property1"] = 10;
        _Properties["Property2"] = "Test";
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有什么我可以对我的对象做什么,没有实际制作属性,这将为这两个"属性"添加数据绑定支持?

请注意,对于我的真实类,我知道每个属性的类型,因此如果它更容易,请将上面的代码更改为仅使用字符串值:

public class CustomDataBinding : Component
{
    private Dictionary<String, String> _Properties = new Dictionary<String, String>();

    public CustomDataBinding()
    {
        _Properties["Property1"] = "Property1";
        _Properties["Property2"] = "Property2";
    }
}
Run Code Online (Sandbox Code Playgroud)

我还需要验证支持,因为我们的类也可以报告每个属性的验证状态,但我已经实现了IDataErrorInfo和IDataValidationInfo,我认为它会给我这个.我也实现了INotifyPropertyChanged,所以我想到了改变机制,但我需要发现并与属性交谈.除了这些接口之外,我应该研究的任何其他内容都是受欢迎的信息.

c# data-binding interface

1
推荐指数
1
解决办法
1504
查看次数

标签 统计

c# ×2

data-binding ×2

interface ×1

winforms ×1