【发布时间】:2017-06-27 18:49:55
【问题描述】:
我有 2 个班级:Doctor 和 Pacient。它们都有一个名为 codeM 的字段。因为医生有一个代码,所以在创建 Pacient 对象时,在 codeM 字段中编写医生的代码时,可以将许多病人分配给该医生。 (我的意思是在创建 Doctor 对象以选择其 codeM 之后)
private int codeM Doctor 和 Pacient 类中的字段定义。
和 2 种形式。在 Form1 中,我有一个 Doctor 对象列表,在 Form2 中,我有一个 Pacient 对象列表,我在创建它之后将其转移到 Form1。原因如下:
在 Form1 中,我有一个 listBox,其中显示了 Doctor 对象的列表。名单如下:List<Doctor> listDoctors = new List<Doctor>();
我从 Form2 传递给 Form1 的 Pacient 对象列表命名为 listPacients。
我有一个辅助列表框。我希望当我从 listBox1 中选择一个 Doctor 对象时,将该医生的属性 codeM 与 listPacients 中的每个患者进行比较,并在 listBox2 中向我显示那些 codeM 与医生 codeM 相同的患者。
我什至不知道从哪里开始做这件事,但我有 listBox1 的代码,与医生一起使用
private void listBox1_doctors_SelectedIndexChanged(object sender, EventArgs e)
{
Doctor currentItem = listBox1_doctors.SelectedItem as Doctor;
foreach(Pacient p in listaPacienti2)
{
if(currentItem.CodM==p.CodM)
{
listBox2_pacienti.DataSource = new ObservableCollection<Pacient>(p);
listBox2_pacienti.DisplayMember = nameof(Doctor.NumeM);
listBox2_pacienti.ValueMember = nameof(Doctor.CodM);
listBox2_pacienti.SelectedIndex = 0;
}
}
//from this point on i'm stuck. Please tell me how to continue, and how to set dataSource to only show me the desired pacients
}
【问题讨论】:
-
除非我遗漏了什么,一旦你选择了医生,你需要通过调用 patientListBox.DataSource = listPatients 来填充患者列表框。如果没有更多信息,我们无法帮助您如何为医生获取患者名单。