2010-05-12 16 views
8

Ciao ho una collezione osservabile che collego a un DataGrid utilizzando la proprietà itemsource di DataGrid.Toolkit WPF DataGrid mostra i campi anche con l'attributo browsable impostato su false

Tutte le proprietà della classe all'interno della raccolta vengono visualizzate correttamente in DataGrid. Ora, voglio nascondere alcuni campi a DataGrid usando l'attributo browsable [Browsable (false)] nella classe. Funziona bene in winform, ma sembra non funzionare in WPF.

Qualcuno sa perché? Posso nascondere le colonne più tardi, ma non voglio perdere le prestazioni in questo modo.

C'è qualche altra soluzione?

Grazie.

+0

+1 Vorrei una risposta anche a questo. – Maslow

+1

La soluzione qui sotto è OK, se ne hai bisogno 100 volte potresti dover creare una sottoclasse di datagrid WPF (altrimenti devi agganciare la funzione su ogni griglia che usi). –

+0

+1 Vorrei anche sapere perché questo è il caso, e se c'è un modo migliore per aggirarlo piuttosto che cancellarlo nell'evento AutoGeneratingColumn – simonalexander2005

risposta

1

Sarebbe bello poter impostare gli attributi dei membri e averli rispettati da .NET 4.0 DataGrid.

8

Questo codice funziona in .NET 4,0

void m_grid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) 
{ 
    if (((PropertyDescriptor)e.PropertyDescriptor).IsBrowsable == false) 
     e.Cancel = true; 
} 
1

il DisplayAttributemsdn doc sembra funzionare per il toolkit Silverlight. Non l'ho provato in WPF ma sono spesso uguali.

Problemi correlati