如何从查询中选择列并在datagrid中显示

时间:2016-06-23 11:24:41

标签: c# wpf linq datagrid entity-framework-6

我想使用复选框和数据网格中的显示从查询中选择列。在下图中是该程序的概述:

App screenshot

并使用此代码进行搜索:

Database1Entities DBE = new Database1Entities();
var search = from c in DBE.Tbl_PersonalInformation
                     where
                     string.IsNullOrEmpty(textBoxFirstName.Text) || (textBoxFirstName.Text) == (c.First_Name)
                     &&
                     string.IsNullOrEmpty(textBoxLastName.Text) || (textBoxLastName.Text) == (c.Last_Name)
                     select new { c.First_Name, c.Last_Name };
        dataGrid.ItemsSource = search.ToList();

我会,例如,如果数据网格上只显示checkBoxFirstName.IsChecked==truecheckBoxLastName.IsChecked==false FirstName

2 个答案:

答案 0 :(得分:0)

您可以传递过滤方法

public object FilterMethod(Person person)
{
var condition = false; // checkBoxFirstName.IsChecked==true
if (condition)
    return new {person.Name};
else
    return new { person.Name, person.SurName};
}

并在选择行中使用它     选择FilterMethod(c);

答案 1 :(得分:0)

我假设从你的屏幕截图中你使用的是WinForms而不是WPF。 您可以使用:this.yourGridView.Columns["First_Name"].Visible = checkBoxFirstName.IsChecked==true;

设置First_Name列的可见性。

请参阅https://msdn.microsoft.com/en-us/library/0c24a0d7(v=vs.110).aspx