【发布时间】:2019-05-17 06:49:30
【问题描述】:
我在 SQL Server 中有一个包含联系人的表。我使用 c# 将此表链接到 winforms 中的组合框。
当我在组合中选择一个联系人时,一个方法会使用该联系人的属性填充一些文本框,以便用户可以更改他们喜欢的内容,而不是在数据库中更新(通过单击按钮)该联系人。
其中一个联系人道具是另一个表的引用键,因此我放置了第二个组合框而不是文本框来选择一个新值来更新联系人道具。
附言我为每个表(ContactModel.cs,ecc)都有一个模型,带有 prop 和 ctor 的
所以问题是:如何设置 combobox.selecteditem(当用户选择联系人时)以匹配所选联系人的值?
另外,我正在使用 Dapper。
public class ContactModel
{
public int ContactID{ get; set; } // Primary
// some other props
public int RefContactCommon { get; set; } // Reference to Common table
}
public class CommonModel
{
public int CommonID { get; set; } // Primary
public string CommonName { get; set; } // varchar(32)
}
这就是我通常连接所有组合的方式
combo2.ValueMember = "propID";
combo2.DisplayMember = "propName";
combo2.DataSource = SQLHighway.Loadthatprop();
【问题讨论】:
-
您是否尝试将第二个组合中的 SelectedValue 设置为第一个组合选定对象属性中的当前值?
-
这是我要做的,但我不知道怎么做。我无法使用 combo1.selectedItem 或 combo1.selectedValue 或 .selectedWhatever 访问 obj 道具
-
您需要为第一个组合上的 SelectedIndexChanged 编写事件处理程序。设置各种文本框后,您还可以在第二个组合上设置 SelectedValue。