Jak zmienić nazwy kolumn DataGrid, jeśli AutoGenerateColumns = True?
Mam prostą klasę struktury danych:
public class Client {
public String name {set; get;}
public String claim_number {set; get;}
}
Które przekazuję do
DataGrid:
this.data_grid_clients.ItemSource = this.clients;
Chciałbym zmienić nagłówki kolumn. To znaczy: numer_ roszczenia w polu „Numer roszczenia”. Wiem, że można to zrobić, tworząc ręcznie kolumny, wykonując coś takiego:
this.data_grid_clients.Columns[0].Header = "Claim Number"
Jednak właściwość
Columnsjest pusta podczas automatycznego generowania kolumn. Czy istnieje sposób zmiany nazw kolumn, czy też muszę ręcznie wygenerować kolumny?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
7 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
DisplayNameAttribute
http://msdn.microsoft.com/en-u ... .aspx
i zaktualizuj część swojego kodu, aby osiągnąć to, czego chcesz.
Pierwszą rzeczą, którą musisz zrobić, jest dodanie
[DisplayName („”)]
do właściwości w klasie klienta.Zaktualizuj kod XAML, dodaj procedurę obsługi zdarzeń do zdarzenia AutoGenerationColumn.
Na koniec dodaj metodę do sekcji kodu.
Anonimowy użytkownik
Potwierdzenie od:
Dobra odpowiedź
>
Możesz się zmienić https://msdn.microsoft.com/en- ... .aspx
automatycznie wygenerowany nagłówek w zdarzeniu , do którego można uzyskać dostęp https://msdn.microsoft.com/en- ... .aspx
Client.cs
.xaml
.xaml.cs
v1
v2
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Odpowiedź MVVM
>
Aby zachować zgodność ze wzorcem MVVM i uniknąć używania okropnego kodu, możesz użyć niestandardowych zachowań z Sytem.Windows.Interactivity (część wyrażenia Blend SDK znajdującego się w nuget). Będziesz także potrzebował pliku Windows.Base.dll w projekcie, w którym tworzysz zachowanie.
XAML
Klasa zachowania
Zachowania są naprawdę przydatne i nie muszą być definiowane w tym samym projekcie co Twoje widoki, co oznacza, że możesz stworzyć bibliotekę zachowań i używać ich w wielu aplikacjach.
Anonimowy użytkownik
Potwierdzenie od:
Krótka odpowiedź
>
Możesz się zmienić https://msdn.microsoft.com/en- ... .aspx
automatycznie wygenerowany nagłówek w zdarzeniu .
.xaml
.xaml.cs
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Inna metoda generowania nagłówków kolumn
>
Aby dodać do tego, co stwierdzili inni w kontekście dołączania do metody OnAutoGeneratingColumn, uważam, że pomocne jest następujące podejście.
Zapewni, że użyje atrybutu DisplayName z właściwości viewmodel, tak jak inne, ale jeśli nie zostanie podana nazwa, użyje wyrażenia regularnego, aby wziąć nazwę z literami Pascal i przekształcić ją w ładny nagłówek kolumny.