← Kurs MVVM #4 DataTemplateSelectorOpublikowano, autor:Tomasz J W tej części kursu dowiesz się jak stworzyć aplikację wielojęzyczną wykorzystując bindowanie. Jako przykład stworzymy sobie formularz mini-formularz. Zaczynamy od stworzenia plik zasobów (ang. Resources File) w dwóch wersjach, domyślna – Polska i Angielska. Aby to zrobić do projektu dodajemy nowy element typu resx jak na obrazie poniżej. Plik ten wykorzystamy jako słownik domyślnego języka. Otwieramy nowo utworzony plik i dodajemy do ni...
Sztuka programowania 3084 dni, 7 godzin, 25 minut temu 182 źrodło rozwiń
Data Templates - czyli szablon prezentacji danych określa w jaki sposób użytkownik zobaczy dane prezentowane np. w ListBox-ie. Do tej pory wykorzystywaliśmy dla ListBoxa właściwość DisplayMemberPath. Teraz możemy napisać szablon...
W poście omawiającym bindowanie do różnych źródeł danych omawiałem ObjectDataProvider. Tym razem bardziej praktyczny przykład. Scenariusz jest taki: Na formatce jest ListBox oraz dwa TextBox-y do wprowadzania imienia i nazwiska. Baza danych przechowuje klientów. Formatka ma za zadanie wyświetlać wszystkich klientów jeżeli nie wprowadzono wartości filtrów do TextBox-ów, bądź też przefiltrować dane jeżeli filtry zostały wprowadzone przez użytkownika.
Bindowanie do obiektów ADO.NET. Najczęściej obiekty ADO.NET inicjuje się w kodzie, a następnie w XAMLu następuje bindowanie do konkretnej kontrolki...
Bindowanie to mechanizm wiążący dane z interfejsem je wyświetlającym. Mechanizm ten w WPF jest bardzo rozbudowany i oferuje możliwości nieosiągalne w prosty sposób dla Windows Forms.
Jakiś czas temu napotkałem na problem podczas próby przypisania własnego kontekstu kontrolce ContextMenu. Zacznijmy może od razu od przykładu XAML: Prosty widok – zwykły Grid z kontekstowym menu. DataContext ustawiam na SimpleVIewModel a następnie binduje właściwość Text. Code-behind wygląda następująco:publicpartialclass MainWindow : Window { public MainWindow() { SimpleViewModel =new WpfApplication1.SimpleViewModel(); DataContext =this; InitializeComponent(); } ...
Podczas działania naszej aplikacji (a będącej jeszcze w fazie dewelopmentu) często zachodzi potrzeba na wyświetlanie dodatkowych informacji. Przykładowo wyświetlamy różnego rodzaju identyfikatory czy kody wczytanych danych aby śledzić czy edytowany rekord jest tym rekordem, o który nam chodzi...
Silverlight 4853 dni, 36 minut temu 98 źrodło rozwiń
W poprzednim poście opisałem nowość w Silverlight 5 – XAML bindings debugging, czyli debugowanie bindingów prosto w XAML’u. Programiści już się cieszą i czekają od kwietnia na wersję RTM, a wtedy zmigrują swoje projekty do nowej wersji.Wcale nie trzeba czekać Ale okazuje się, że nie trzeba czekać. Już dzisiaj można debugować bindingi w „starych” projektach Silverlight 4!
Silverlight 4868 dni, 6 godzin, 28 minut temu 59 źrodło rozwiń
Na konferencji Silverlight Firestarter (2 grudnia 2010) ogłoszono, że nadchodzi Silverlight 5, a cztery miesiące później, na konferencji MIX 11, ogłoszono publiczną wersję Silverlight 5 Beta. Jednym z wyczekiwanych ficzerów jest debugowanie bindingów w XAML‘u. To bardzo przydatny wynalazek.
Silverlight 4868 dni, 6 godzin, 28 minut temu 53 źrodło rozwiń
WPF: Bindowanie Enum'a do ComboBox'akwi 112011 Podczas moich ostatnich zmagań z WPFem trafiłem na ciekawy problem. Chodzi o bindowanie typu Enum do kontrolki ComboBox. Czyli w combo ma pojawiać się lista dostępnych wartości enum'a, a po wybraniu jednej z nich ma uaktualnić się podpięta do comboboxa właściowość ViewModelu. Dodatkowo sprawa komplikuje się gdy nazwy poszczególnych wartości enum'a są niezbyt czytelne dla śmiertelnego użytkownika programu (np. zamiast ładnej opisowej nazwy "To jest pierwsza s...
Autor: Piszą swój cykl postów o WPF a w szczególności wpis, o DataBindingu pominąłem jeden ciekawy rodzaj bindingu o którym chciałbym dziś wspomnieć. Załóżmy, że mamy UI, który wyświetla jakieś elementy, które pobierane są z WebService’u. Oczywiście strzał do WebService’u (® by Marcin Najder) jest kosztowny jeśli chodzi o czas a UI nie chcemy blokować. Możemy wykorzystać w tym celu PriorityBinding. Jak? Załóżmy, że nasza klasa dostępu do danych wygląda następująco: publicclassDataAccess { publicList
Autor: Ostatnio miałem potrzebę użycia takiej wartości StringFormat, aby jego wartość zaczynała się od spacji. Każdy kto kiedykolwiek bawił się tą właściwością wie, że takie coś jak poniżej nie spełni swojej roli.
Czy spotkaliście się z takim błędem pomimo, że byliście pewni, że poprawnie zasilacie kontrolkę lub powiązane z nią źródło danych? Jeśli tak to problem był związany z użytymi strukturami danych. Przykładowy kod, który spowoduje powyższy błąd został przedstawiony poniżej. Zacznijmy od prostej klasy, którą chcemy zaprezentować na kontrolce G...