2010-05-12 28 views
8

Witam mam kolekcję obserwowalną, którą łączę z DataGrid przy użyciu właściwości itemGo DataGrid.Zestaw narzędzi WPF DataGrid wyświetla pola, nawet jeśli atrybut atrybutu przeglądarki jest ustawiony na false

Wszystkie właściwości klasy w kolekcji są wyświetlane poprawnie w DataGrid. Teraz chcę ukryć niektóre pola do DataGrid za pomocą atrybutu browsable [Browsable (false)] w klasie. Działa dobrze w winForm, ale wydaje się nie działać w WPF.

Ktoś wie, dlaczego? Mogę ukryć kolumny później, ale nie chcę tracić wydajności w ten sposób.

Czy istnieje inne rozwiązanie?

Dzięki.

+0

+1 Chciałbym również odpowiedzieć na to pytanie. – Maslow

+1

Sposób obejścia tego problemu jest OK, jeśli potrzebujesz go 100 razy, możesz potrzebować podklasy datagrid WPF (w przeciwnym razie musisz podłączyć funkcję na każdej używanej sieci). –

+0

+1 Chciałbym również wiedzieć, dlaczego tak się dzieje, i jeśli jest lepszy sposób obejścia tego problemu niż tylko anulowanie go w zdarzeniu AutoGeneratingColumn – simonalexander2005

Odpowiedz

1

Byłoby miło móc ustawić atrybuty członka i mieć je respektowane przez .NET 4.0 DataGrid.

8

Ten kod działa w .NET 4,0

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

DisplayAttributemsdn doc wydaje się działać dla Toolkit Silverlight. Nie próbowałem go w WPF, ale często są takie same.