Przelaczanie user control i odswiezanie

0

Cześć,

Raczkuję w C# wiec problem może trywialny.

  1. Problem
    Zdefiniowałem sobie dwa user control. Jeden z nich posiada listę urządzeń (ImageList), drugi user control to parametry wybranego urządzenia.
    W głównym oknie win form mam zrobiony splitcontainer. Pierwszy panel to ListView z listą urządzeń. Drugi panel to nałożone na siebie user control. Gdy wybieram urządzenie z listy po prawej stronie to wyłączam lub włączam odpowiedni user control. Nie wiem natomiast jak zrobić aby po kliknięciu na urządzenie z mojego user control został on wyłączony a włączony user control z parametrami urządzenia.

  2. Problem
    Aplikacja która piszę pobiera dane z urządzeń w osobnym wątku. Klasa z danymi jest statyczna. Jak należy zrobić odświeżanie danych w user controls które zdefiniowałem. Należy w głównym oknie zrobić timer który będzie je odświeżał, czy w każdym user control zrobić timer ? Chyba że istnieje jakiś wzorzec albo inny sposób.

pferd

1
pferd napisał(a):

Cześć,

Raczkuję w C# wiec problem może trywialny.

  1. Problem
    Zdefiniowałem sobie dwa user control. Jeden z nich posiada listę urządzeń (ImageList), drugi user control to parametry wybranego urządzenia.
    W głównym oknie win form mam zrobiony splitcontainer. Pierwszy panel to ListView z listą urządzeń. Drugi panel to nałożone na siebie user control. Gdy wybieram urządzenie z listy po prawej stronie to wyłączam lub włączam odpowiedni user control. Nie wiem natomiast jak zrobić aby po kliknięciu na urządzenie z mojego user control został on wyłączony a włączony user control z parametrami urządzenia.

  2. Problem
    Aplikacja która piszę pobiera dane z urządzeń w osobnym wątku. Klasa z danymi jest statyczna. Jak należy zrobić odświeżanie danych w user controls które zdefiniowałem. Należy w głównym oknie zrobić timer który będzie je odświeżał, czy w każdym user control zrobić timer ? Chyba że istnieje jakiś wzorzec albo inny sposób.

pferd

Problem 1 - Ja bym sobie zastosował wzorzec Singleton dla jednej kontrolki i drugiej. Później tylko w kodzie pierwszej po kliknięciu gdzieś tam. Kontrolka2.Instancja.Visible = false;

Problem 2 - Klasa statyczna ma to do siebie, że jest to po prostu jedna instancja na całą aplikację (można zamiast klasy statycznej użyć singletona). Zatem odświeżone dane w jednym miejscu będą widoczne w innym w takim samym stanie. Jeżeli to ma się cyklicznie odświeżać to w głównej formie timer i wykonywana metoda co jakiś czas

 
void WezOdswiezTeDane()
{
     KlasaStatyczna.Dane1 = "cosTam";
     KlasaStatyczna.Dane2 = 1;
     // po zastosowaniu singletona
     Kontrolka1.Instance.Odswiez();
     Kontrolka2.Instance.Odswiez();
}

0

Dziękuje!

1 użytkowników online, w tym zalogowanych: 0, gości: 1