【问题标题】:Listbox with linq and multiple selection具有 linq 和多项选择的列表框
【发布时间】: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。

标签: c# linq listbox


【解决方案1】:

我不知道您的 listbox1 中有什么类型的元素。我假设该类型被命名为Session:

    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 => listBox1.SelectedItems.OfType<Session>().Select(x => x.PatientID).Contains(pID.PatientID));
        listBox2.DisplayMember = "Start";
        listBox2.ValueMember = "SessionID";
    }

【讨论】:

  • listBox2 中仍然没有显示任何内容 :(
  • dbContext.SessionsPatientID 是什么类型?您可以在您的问题中发布更多代码吗?
  • 完成。那样行吗?我是新手,对不起。
  • 如果你定义了一个断点,那么List&lt;string&gt; selectedItemsdbContext.Sessions中的stroed。有什么元素吗?
  • List&lt;string&gt; selectedItems 有适当的 &lt;string&gt; 项目。 dbContext.Sessions{Table(Session)}, Context {testproj.DataClasses1DataContext}
猜你喜欢
  • 1970-01-01
  • 2012-06-21
  • 2014-01-23
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多