用户需要将数据表中一列的值设置为1或2.
我想呈现一个组合框,显示“ONE”,“TWO”并在场景后面设置1或2,就像我在Access-Forms中做过很多次一样.
另一方面,如果显示该表,则它不应显示1或2,而是显示ComboBox中的相应字符串.
我怎样才能让这个简单的任务工作?
解决方法 我假设你的意思是DataGrIDVIEw,它适用于 Windows Forms,而GrIDVIEw适用于ASP.NET,尽管你标记了你的问题.如何将数据绑定到DataGrIDVIEwComboBoxColumn?在设置DataSource时,您需要在DataGrIDVIEwComboBoxColumn上设置DisplayMember和ValueMember属性.显示示例的MSDN链接显示了一个示例,但它并没有完全显示您正在请求的内容,因为它将两个属性设置为相同的内容.
displayMember将是您希望用户看到的文本,ValueMember将是与其关联的隐藏基础值.
举个例子,假设您的项目中有一个Choice类来表示您的选择,如下所示:
public class Choice{ public string name { get; private set; } public int Value { get; private set; } public Choice(string name,int value) { name = name; Value = value; } private static Readonly List<Choice> possibleChoices = new List<Choice> { { new Choice("One",1) },{ new Choice("Two",2) } }; public static List<Choice> GetChoices() { return possibleChoices; }}
GetChoices()将返回包含您的选择的列表.理想情况下,您可以在服务层中使用这样的方法,或者如果您愿意,可以在其他地方构建自己的列表(在您的表单代码中).为简单起见,我把它们集中在同一个类中.
在表单中,您将列表绑定到DataGrIDVIEwComboBoxColumn,如下所示:
// reference the comboBox columnDataGrIDVIEwComboBoxColumn cboBoxColumn = (DataGrIDVIEwComboBoxColumn)dataGrIDVIEw1.Columns[0];cboBoxColumn.DataSource = Choice.GetChoices();cboBoxColumn.displayMember = "name"; // the name property in Choice classcboBoxColumn.ValueMember = "Value"; // ditto for the Value property
你现在应该在组合框中看到“一个”和“两个”.当您从中获取所选值时,它应该是基础1或2值.
这就是使用displayMember / ValueMember背后的想法.这应该可以帮助您调整正在使用的数据源.
总结以上是内存溢出为你收集整理的c# – DataGridViewComboBoxColumn名称/值如何?全部内容,希望文章能够帮你解决c# – DataGridViewComboBoxColumn名称/值如何?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)