2016-06-23 3 views
0

Ich möchte Spalten aus einer Abfrage mit dem Kontrollkästchen und Anzeige in Datagrid auswählen. In der folgenden Abbildung ist eine Übersicht über das Programm:So wählen Sie Spalten aus einer Abfrage und Anzeige in Datagrid

App screenshot

und mit diesem Code für die Suche:

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(); 

Ich würde zum Beispiel wenn checkBoxFirstName.IsChecked==true und checkBoxLastName.IsChecked==falseFirstName nur auf dem Datagrid angezeigt werden .

+0

Mögliche Duplikat [Kann ich eine Sammlung von XAML filtern?] (Http://stackoverflow.com/questions/4923935/can-i-filter-a-collection-from-xaml) – ASh

Antwort

0

Sie könnten einen Filter-Methode übergeben

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

und es in der Auswahlzeile FilterMethod wählen (c);

0

Ich gehe davon aus, dass Sie mit Ihrem Screenshot WinForms und nicht WPF verwenden. Sie können verwenden: this.yourGridView.Columns["First_Name"].Visible = checkBoxFirstName.IsChecked==true;

Zum Festlegen der Sichtbarkeit der First_Name-Spalte.

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

+0

Wenn Sie Code-Behind verwenden, würden Sie in WPF Folgendes tun: YourDataGrid.Columns [IndexOftheColumn] .Visibility = Visibility.Collapsed; Wenn Sie MVVM verwenden und die Spalte in der Sicht XAML verbergen möchten: wo der Typ der FirstnameVisibility -Eigenschaft ist Systems.Windows.Visibility und legen Sie es fest basierend auf dem Wert Ihrer Checkbox. –

Verwandte Themen