Autor Wątek: ListView i własna klasa  (Przeczytany 3119 razy)

Offline koirat

  • Użytkownik

# Kwiecień 16, 2012, 21:20:49
OK, już powoli załapuję, trza robić propertiesy zamiast gołych publiców...

W świecie .Net zmienne publiczne to całkowicie sobie daruj.
Osobiście zmienne stosuje tylko prywatne sporadycznie protected.
Jeśli chcesz mieć po prostu publiczne pole to stosuj coś takiego
public int NazwaProperty
{
     get;
     set;
}

To jest szybkie tworzenie property (bez bajerów). W procesie optymalizacji gdzie się da i tak zostanie to zoptymalizowane jako dostęp do zwykłej zmiennej.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline quaikohc

  • Użytkownik

# Kwiecień 16, 2012, 22:03:15
trochę komplikujecie chyba odpowiedź na proste pytanie, ja np w okienku logowania w edytorze robię tak:

 var gridView = new GridView();
            gridView.Columns.Add(new GridViewColumn() { Header = "Time", DisplayMemberBinding = new Binding("DateTime") });
            gridView.Columns.Add(new GridViewColumn() { Header = "Message", DisplayMemberBinding = new Binding("Msg") });
           

            LogMsg msg = new LogMsg();
            msg.DateTime = DateTime.Now;
            msg.Msg = "Renderer initialized successfully";

             listView = new ListView() { View = gridView };
            listView.Items.Add(msg);


       struct LogMsg
        {
            DateTime dateTime;
            public System.DateTime DateTime
            {
                get { return dateTime; }
                set { dateTime = value; }
            }
            String msg;
            public System.String Msg
            {
                get { return msg; }
                set { msg = value; }
            }
        };

        ListView listView;

        public void AddLoggerMessage(string text)
        {
            LogMsg msg = new LogMsg();
            msg.DateTime = DateTime.Now;
            msg.Msg = text;

        }


i dziala, chyba ze nie o to pytasz..

Offline Fiołek

  • Użytkownik
    • Blog

# Kwiecień 16, 2012, 22:16:04
Nie "komplikujecie", a staramy się dokładniej wytłumaczyć, dając wędkę, nie rybę(bo co z tego, że damy gotowy kod?).

Ad. kodu: [ code ]! No i masz trochę przerost formy nad treścią. DataGridView, AutoGenerateColumn, DataSource, w skrócie:
DataGridView gd; //z designera.
List<LogMsg> log /*= ...*/;
gd.AutoGenerateColumns = true;
gd.DataSource = log;

class LogMsg
{
public DateTime Time {get;set;}
public string Message {get;set;}
}

EDIT: No i w sumie to już WPF(ListView.View to enum w WF, GridView nie istnieje), nie WinForms.
« Ostatnia zmiana: Kwiecień 16, 2012, 22:21:27 wysłana przez Fiołek »

Offline koirat

  • Użytkownik

# Kwiecień 16, 2012, 22:53:19
@quaikohc
Pozatym twój kod nie rozwiązuje jego problemu. Bo w twoim kodzie manualnie bindujesz property do kolumny. Jak rozumiem z postu Xirdusa on chce mieć listę jakichś tam bliżej nie określonych obiektów które pięknie będzie można podejrzeć za pomocą tablicowego layoutu.

Offline quaikohc

  • Użytkownik

# Kwiecień 16, 2012, 23:49:57
@quaikohc
Pozatym twój kod nie rozwiązuje jego problemu. Bo w twoim kodzie manualnie bindujesz property do kolumny. Jak rozumiem z postu Xirdusa on chce mieć listę jakichś tam bliżej nie określonych obiektów które pięknie będzie można podejrzeć za pomocą tablicowego layoutu.

ja go zrozumiałem inaczej, nie napisał nigdzie że to obiekty "bliżej nieokreślone", napisał, że to własna klasa z samymi stringami, więc  raczej odwrotnie

@Fiołek
 rzeczywiście to wpf, nie doczytałem. co do samej odpowiedzi to wychodzę z założenia, że gdyby autor postu chciałby jakiegoś dokładnego wytłumaczenia jak to działa itd to sam by sobie to znalazł, bo tutoriali etc jest mnóstwo, można siedzieć i przez dwa tygodnie czytać, a On pytał bardzo konkretnie. Jak to co z tego, że damy gotowy kod? Jak można lepiej odpowiedzieć na takie pytanie, niż pokazując dokładnie jak to zrobić , tak żeby mógł przeanalizować działający kod (już pomijając to, że może mógłby być prostszy)? zrobi copy-paste i zadziała - dobrze dla Niego, ale nie sądzę, żeby o to Mu chodziło. nie wiem czemu na siłę próbujecie uskuteczniać jakąś edukacyjną misję (próbując tłumaczyć jeszcze przy okazji rzeczy zupełnie nie związane z tematem), zamiast po prostu odpowiedzieć na bardzo konkretne pytania

Offline Fiołek

  • Użytkownik
    • Blog

# Kwiecień 17, 2012, 18:33:00
@quaikohc, tylko co z tego, jak damy mu kod, który ładny nie będzie(bo bindingi WinForms piękne nie są, ale swoją drogą ma wyżej jakiś fragment kodu)? Od tego jest designer, by go używać i w sumie dostał krok po kroku jak to zrobić. Jak będzie chciał to poszerzy swoją wiedzę o to, co jest w podanych wcześniej linkach, ale jak nie będzie to wcale nie musi.

Jeszcze co do w/w kodu: w sumie, to połowa jest do wywalenia, bo to powinno być w XAML-u, nie w kodzie(po coś został stworzony).