2009-12-17 12 views
11

Po prostu moje stopy są mokre w Silverlight i nie bardzo rozumiem różnice i plusy/minusy tworzenia UserControl vs. Tworzenie kontroli dla tego samego zadania (jak w przypadku kliknięcia prawym przyciskiem myszy wyboru w Wyrażeniu Blend, na przykład).Kiedy używać funkcji UserControl a sterowanie w Silverlight?

Wygląda na to, że wybieranie opcji "Wprowadź do kontroli" tworzy nowy szablon dla określonego typu bazy, natomiast utworzenie UserControl tworzy zupełnie nową klasę podstawową. Czy to jest poprawne?

Screenshot http://tinyurl.com/yjsaox9

W tym konkretnym przypadku, tworzę pole kontroli zwyczaj tekstowe, które trwa tylko liczby, i dzieli się na 3 części, przechowywanie w oddzielnych 3 wartości właściwości, jak pokazano poniżej. W tym konkretnym przypadku, który byłby najlepszy?

Screenshot 2 http://tinyurl.com/y9x7zox

Aktualizacja (pytanie dodatkowe): Dlaczego nie mogę korzystać z szablonu Oprawa z UserControl, ale mogę z Control? To jeden z powodów, dla których uważałem, że wprowadzenie UserControl może nie być właściwą decyzją.

Odpowiedz

3

Dov, myślę, że odpowiedziałeś na swoje pytanie z aktualizacją. Sterowania niestandardowe są najbardziej przydatne, gdy chcesz uzyskać kontrolę, która obsługuje szablony. W przeciwnym razie są one przydatne, gdy dziedziczysz z innych kontrolek, aby czysto dodać funkcjonalność (TextBox -> PasswordTextBox).

+0

Tak, niestandardowe sterowanie zdecydowanie ma dla mnie największy sens. Dzięki. – Dov

4

Jeśli rozważyć kontrolę być grupa trzech polach tekstowych następnie UserControl byłoby właściwe, ale jeśli kontrola będzie nadal zasadniczo byćTextBox to należy rozszerzyć istniejącą sterowania z „Make pod kontrolą.”

Wygląda na to, że potrzebujesz do mnie UserControl.

8

UserControls mają być sterowaniem złożonym - w zasadzie kilka innych "elementów sterujących" zgrupowanych razem, aby działać jako pojedyncza, spójna jednostka.

Z drugiej strony, sterowniki niestandardowe są używane jako pojedyncze elementy sterujące. Pomyśl o podstawowych elementach sterujących w strukturze, takich jak TextBox lub Button - jeśli implementujesz coś takiego, potrzebujesz kontroli. (Jest to mniej powszechne niż UserControls, szczególnie w WPF, ponieważ możesz użyć szablonów na elementach sterujących klasy podstawowej, aby wykonać kilka rzeczy, w których potrzebujesz niestandardowych elementów sterujących w innych frameworkach). Kontrola niestandardowa polega na zdefiniowaniu nowego zachowania dla pojedynczej "kontroli".

+0

Czy istnieje sposób na powiązanie szablonu z kontrolką UserControl? – Dov

+1

Cóż, szablony dla poszczególnych elementów w złożonym sterowaniu (np. TextBox pobierze szablon przypisany do TextBoxes) będą miały zastosowanie do kontrolki użytkownika (o ile nie zapewnia ona własnego), ale nie dostaniesz tego samego poziomu tematycznego wsparcia, podobnie jak w przypadku niestandardowego sterowania. –

Powiązane problemy