Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DevExpress存储库项查找编辑数据显示_C#_Devexpress - Fatal编程技术网

C# DevExpress存储库项查找编辑数据显示

C# DevExpress存储库项查找编辑数据显示,c#,devexpress,C#,Devexpress,我使用的是一个gridcontrol,上面有3列 在其中一列上,我使用存储库项查找编辑。当我使用tableadapter更新方法更新网格的数据源时,我的问题出现了,之后所有其他列都保留了正确的数据选择,但是存储库中的列上的单元格为空。但是数据存在,因此没有显示文本,而是存在数据 关于如何实现这一点有什么想法吗?RepositoryItemLookupEdit的问题是,如果新数据集中不存在旧的选定值,DisplayValue成员将不显示任何内容。因此,您必须检查新加载的数据是否包含有效的旧值Edi

我使用的是一个
gridcontrol
,上面有3列

在其中一列上,我使用存储库项查找编辑。当我使用tableadapter更新方法更新网格的数据源时,我的问题出现了,之后所有其他列都保留了正确的数据选择,但是存储库中的列上的单元格为空。但是数据存在,因此没有显示文本,而是存在数据


关于如何实现这一点有什么想法吗?

RepositoryItemLookupEdit的问题是,如果新数据集中不存在旧的选定值,
DisplayValue
成员将不显示任何内容。因此,您必须检查新加载的数据是否包含有效的旧值
EditValue

您需要确保已正确设置编辑器的数据源,以及前面提到的DisplayMember和ValueMember属性。显示成员将确定编辑器本身中显示的内容,值成员是用于绑定的对象。因此,您可以为Value成员指定(int)ID,为Display成员指定(string)名称或描述。这里最重要的是正确设置和更新编辑器的DataSource属性。通过直接访问编辑器的DataSource属性,并在窗体加载或初始化时将其设置为域对象的集合,可以在设计器中或在代码本身中实现这一点


此外,您可以从域对象创建BindingSource,用于映射到数据源,或者(我建议)创建装饰域对象的视图模型。这允许您根据需要对数据进行按摩。在某些情况下,您可能希望在显示或绑定数据之前或之后进行一些验证或格式化

问题是,在源数据库中,值字段是nvarchar(9),而在插入数据的目标数据源中,值字段是nvarchar(20)。我相信,当数据通过tableadapter传送时,值成员中没有修剪,因此是额外的11个零字符,因此查找编辑无法在它们之间进行匹配。