poniedziałek, 19 października 2015

WPF - Podstawy wzorca MVVM Cz 2.- Konwertowanie wartości enum przy pomocy Dictionary

W tej krótkiej części pokażę jak szybko i łatwo przekonwertować wartości z typu wyliczeniowego do stringa przy pomocy klasy Dictionary.

  
Jak widać kolumna Status Pracownika posiada wartości pobrane stricte z typu wyliczeniowego enum:

public enum eStatus
{
    CodeWriter,
    Tester,
    TeamManager
}

Dla przeciętnego użytkownika nie jest to przejrzyste, dlatego przejdziemy sobie do klasy MainWindowViewModel i na początek stwórzmy prosty słownik, który jako klucze przybierze wartości typu wyliczeniowego, natomiast jako drugi parametr - stringi, które będą określały wartości wyświetlane dla użytkownika:

var eStatDictionary = new Dictionary<eStatus, string>
{
     {eStatus.CodeWriter,"Programista"},
     {eStatus.TeamManager,"Zwierzchnik Drużyny"},
     {eStatus.Tester, "Tester Programów"}
};

Całą zawartość wklejamy do właściwości WorkerList. Możemy wówczas wykorzystać słownik jako ciąg znaków wyświetlany w DataGidzie, a będzie on inicjowany przy pomocy pobranych enumów zobaczmy na implementację właściwości:

   public List<WorkerRowViewModel> WorkerList
        {
            get
            {
                var eStatDictionary = new Dictionary<eStatus, string>
               {
                   {eStatus.CodeWriter,"Programista"},
                   {eStatus.TeamManager,"Zwierzchnik Drużyny"},
                   {eStatus.Tester, "Tester Programów"}
               };

                if (_repository == null)
                {
                    _repository = new WorkerRepository();
                }
                var tmpval = _repository.GetAll().Select(x => new WorkerRowViewModel
                {
                    WorkerId = x.WorkerId,
                    Name = x.Name,
                    Surname = x.Surname,
                    WorkerStatus = eStatDictionary[x.WorkerStatus]
                }).ToList();
                return tmpval;
            }
        }
   }
Wprowadzone zmiany umożliwiają zmianę wartości w kolumnie Status Użytkownika na łańcuchy znakowe wprowadzone do słowników:


Zapraszam do części 3 - bindowanie TextBoxów  i interface ICommand obsługi przycisków.

Pod linkiem znajduje się cały projekt z 3-częściowego kursu: 


Brak komentarzy:

Prześlij komentarz