【发布时间】:2016-05-17 17:43:17
【问题描述】:
有 2 个列表框:Patients 和 Sessions。 需要根据第一个中的多项选择在第二个中显示过滤(使用 linq 查询)信息。
注释字符串有效,但只允许在第一个列表框中选择一个项目。
我绝对知道它成功地将患者收集到列表变量,但是当我使用包含时,第二个列表框是空的。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
DataClasses1DataContext dbContext = new DataClasses1DataContext();
List<string> selectedItems = (from object o in listBox1.SelectedItems select listBox1.GetItemText(o)).ToList();
listBox2.DataSource = dbContext.Sessions
//.Where(pID => pID.PatientID == listBox1.GetItemText(listBox1.SelectedValue))
.Where(pID => selectedItems.Contains(pID.PatientID));
listBox2.DisplayMember = "Start";
listBox2.ValueMember = "SessionID";
}
Session 和 dbContext 类定义:
public partial class Session : INotifyPropertyChanging, INotifyPropertyChanged
{
...
public int SessionID
{
...
}
public string PatientID
{
...
}
}
public partial class DataClasses1DataContext : System.Data.Linq.DataContext
{
...
public System.Data.Linq.Table<Session> Sessions
{
...
}
}
【问题讨论】:
-
你有什么例外?
-
无异常,只加载emply listBox2。