我有一个表格与数据网格视图的人员分配到一个项目。我目前有一个单一的下拉菜单,允许您添加到该项目的人拉的主要名册的基础上的所有名称。我想出了如何做到这一点,通过编辑列属性和使用DisplayMember然而,它只允许一个列的选择,而不是一个表达式。
我们只有几个人的姓氏相同,但是,这在过去会引起头痛。我希望下拉菜单拉入姓氏,名字。我读过一些关于使用表达式属性的东西,但是没有找到。它看起来和我读过的其他帖子有点不同,主要是因为Visual Studio创建了绑定源和表适配器,我不能'我似乎无法编辑这个单独的控件列。我所读到的所有内容都显示了如何通过编程创建一个表而不是通过编辑现有的表来实现这一点。我设置了一个SQL视图来解决这个问题,但无法将控件设置为视图或另一个查询。那么编辑适配器而不在实际表上创建列的最佳方法是什么?
谢谢你的帮助唐
已执行此操作,但无法使其与DataGridView和适配器一起工作。
https://learn.microsoft.com/en-us/dotnet/api/system.data.datacolumn.expression?redirectedfrom=MSDN&view=netframework-4.7.2#System_Data_DataColumn_Expression
1条答案
按热度按时间smdnsysy1#
这实际上与网格或表适配器没有任何关系,所以这可以解释为什么找不到它。
Expression
是DataColumn
的属性,即DataTable
中的列,所以这是需要进行更改的地方。如果您有一个类型化的DataSet
,则可以在DataSet
设计器中对其进行更改。在设计器中打开您的
DataSet
。右键单击相应的表并选择 Add -〉Column。在表中输入列的名称,然后打开 Properties 窗口并设置Expression
属性。我刚刚测试了具有GivenName
和FamilyName
列的Person
表。添加一个FullName
列并将Expression
设置为GivenName + ' ' + FamilyName
。保存后,您可以在 * 数据源 * 窗口中看到您的表现在有了额外的列。如果您将该表拖到窗体上,它会创建一个DataGridView
和一个对应的列。如果你已经有了一个DataGridView
,那么你可以自己添加一个新列,并设置它的DataPropertyName
,这样它就可以绑定到你的新表达式列。