MC, 12:52 czwartek, 29.11.2012 r.
Ilustracja do artykułu: WPF - Sprawdzanie czy kod wykonywany jest w trybie Design (Design-mode)

WPF - Sprawdzanie czy kod wykonywany jest w trybie Design (Design-mode)

Notatka ta dotyczyć będzie technologii Windows Presentation Foundation, a dokładniej sposobu na sprawdzenie w kodzie, czy jest on wykonywany w trybie Design, czy podczas regularnej pracy aplikacji.

Jak sprawdzić, czy aplikacja pracuje w trybie Design?

Bardzo często gdy pracujemy nad graficznym interfejsem aplikacji, możemy spotkać się z wyjątkami rzucanymi przez designery, gdy te np. nie mają dostępu do pewnych zasobów, tak jak gdyby to miało miejsce w czasie normalnej pracy programu. W pierwszej kolejności należy oczywiście sprawdzić, czy nie da się tego uniknąć stosując lepszą strukturę programu, która w efekcie może spowodować że problematyczne partie kodu znikną z konstruktora klasy, wykonywanego przez designer. Gdy jednak nie możemy tego uniknąć, można zastosować instrukcję warunkową, w której upewnimy się w jakim trybie działa program i od tego uzależnimy wykonanie się pewnych części kodu.

W WPF na szczęście jest to bardzo proste zagadnienie, ponieważ dostajemy gotowy obiekt potrafiący udzielić nam interesujących nas informacji. Spójrzmy na poniższy przykład:

public class Kontrolka : UserControl
{
  public Kontrolka()
  {
    if (!DesignerProperties.GetIsInDesignMode(this))
    {
      // Kod który wykona się tylko podczas normalnej pracy aplikacji, a nie w trybie design
    }
  }
}
Jak widzimy w powyższym przykładzie najprostszej kontrolki zawierającej jedynie konstruktor, wykorzystać możemy statyczny obiekt DesignerProperties, który posiada metodę GetIsInDesignMode() pozwalającą nam sprawdzić, czy wskazany element UI znajduje się w trybie Design. Tym prostym sposobem możemy zdeterminować tryb pracy aplikacji i zależnie od niego, dostosować wykonywane operacje.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: