【发布时间】:2013-08-05 13:01:53
【问题描述】:
我使用的是gridcontrol,上面有 3 列。
在其中一列中,我使用了存储库项查找编辑。当我使用 tableadapter update 方法更新网格的数据源时出现了我的问题,之后所有其他列都保留了正确的数据选择,但是在存储库的列上单元格是空的..但是数据存在,所以没有显示文本,但存在数据。
关于如何进行这项工作的任何想法?
【问题讨论】:
标签: c# devexpress
我使用的是gridcontrol,上面有 3 列。
在其中一列中,我使用了存储库项查找编辑。当我使用 tableadapter update 方法更新网格的数据源时出现了我的问题,之后所有其他列都保留了正确的数据选择,但是在存储库的列上单元格是空的..但是数据存在,所以没有显示文本,但存在数据。
关于如何进行这项工作的任何想法?
【问题讨论】:
标签: c# devexpress
RepositoryItemLookupEdit 的问题是,如果新的数据集中不存在旧的选定值,DisplayValue 成员将不显示任何内容。所以你必须检查新加载的数据是否包含旧值EditValue ..
【讨论】:
您需要确保已正确设置编辑器的 DataSource,以及如前所述的 DisplayMember 和 ValueMember 属性。 Display Member 将决定编辑器本身显示的内容,而 Value Member 将用于绑定。因此,您可以有一个值成员的(int)ID 和一个显示成员的(字符串)名称或描述。这里最重要的是正确设置和更新编辑器的 DataSource 属性。您可以在设计器中或在代码本身中完成此操作,方法是在表单加载或初始化时直接访问编辑器的 DataSource 属性并将其设置为域对象的集合。
此外,您可以从您的域对象创建一个 BindingSource,您可以使用它来映射到数据源,或者(我建议)创建一个装饰您的域对象的视图模型。这使您可以根据需要按摩数据。在某些情况下,您可能希望在显示或绑定数据之前或之后进行一些验证或格式化。
【讨论】: