o tym, jak czasami wredne bywa używanie snippetów- na przykładzie z życia
Sztuka programowania 169 dni, 15 godzin, 5 minut temu 22 rozwiń
W poprzednim wpisie pokazałem, jak użyć Fluent Validation w aplikacji WPF. Wspomniałem, że tamta implementacja niestety nie nadaje się, gdy potrzebujemy walidować dane w sposób asynchroniczny – np. sprawdzić w usłudze, czy dane są unikalne. W tamtym wpisie pokazałem użycie IDataErrorInfo ponieważ jest on najczęściej wykorzystywany do realizacji walidacji. Natomiast dzisiaj opiszę nową wersję tego interfejsu, dodaną w .NET 4.5 – INotifyDataErrorInfo. Co fajne nowy interfejs...
W poprzednich wpisie pokazałem w jaki sposób można zintegrować Fluent Validation z aplikacją ASP.NET MVC, dzisiaj przyszedł czas na WPF. W WPF jest kilka sposobów na realizację walidacji. Najczęściej wykorzystuje się do tego interfejs IDataErrorInfo, który definiuje dwa elementy: właściwość Error zawierającą informacje o błędach oraz indekser, który zwraca błąd dla właściwości o nazwie przekazanej jako indeks. Interfejs ten można wykorzystać do integracji Fluent Validatio...
Czasem lepsze jest wrogiem dobrego. Trochę się o tym przekonałem walcząc z GUI pewnego projektu, który tym razem uruchamiamy na komputerze panelowym z Win10. Ale po kolei.
Last time we finished with all the pieces except the common:MahAppsPopupWindowAction used in XAML. Prism already has a PopupWindowAction (it wasn't there a few years ago) so let's use that to create our own popup window action that will show MahApps-metro-style-dialog.
Showing MahApps modal windows in a Prism WPF and MVVM friendly way (part 1).
Behavior is a attachable piece of code to variours XAML elements. It’s part of Blend SDK. Full source code can be found on a GitHub page. How it works? Behavior attached to window listens to key-presses When sequence for Konami Code is completed then it lanuches Storyboard animation Storyboard moves raptor and plays raptor squeak.
Na rynku wydawniczym nie ma w tej chwili wielu książek poruszających tematykę XAML-a w WPF. Aplikacje desktopowe są w tej chwili w zdecydowanym odwrocie na korzyść aplikacji webowych i nic nie zapowiada, aby w najbliższej przyszłości miało się to istotnie zmienić. Z XAML-em w podejściu MVVM spotkamy się również w przypadku pisania aplikacji mobilnej z wykorzystaniem Xamarin Forms. Ale Xamarin-owy XAML różni się mocno od tego, który mamy w tej chwili w WPF (nieco bardziej przypomina XAML znany z zapomnia...
Jednym z fundamentów WPF’a są zasoby – Resources. Definiowane w ResourceDictionary czyli słowniku zasobów. Każdy element słownika posiada swój klucz, który używamy do pobrania zasobu „z bazy”.
Ostatni tydzień nie przyniósł żadnych rewolucyjnych zmian do aplikacji Winbot, którą rozwijam już jakieś 10 tygodni 🙂 Pracuję nad nową funkcją, która pozwoli na tworzenie nowych scenariuszy ręcznie (bez nagrywania aktywności myszki lub klawiatury). Postanowiłem to wprowadzić aby była możliwość tworzenia zagregowanych scenariuszy lub też bardziej generycznych (np. scenariusz, który wykonuje inny scenariusz przez godzinę). Ale narazie to zostawmy – jeszcze nie jest gotowe, w...
Daj się poznać 2017 649 dni, 14 godzin, 21 minut temu 42 rozwiń
W końcu przyszedł ten moment, w którym stwierdziłem, że pora wypuścić pierwszą wersję Winbota. Zbudowałem instalator i wystawiłem release na githubie. Dostępny do pobrania tutaj. Zanim jednak to uczyniłem, zastanawiałem się co będzie, jeżeli zacznę wypuszczać kolejne wersje. W jaki sposób informować użytkownika z zainstalowaną aplikacją, że pojawiła się nowsza wersja? W tym poście opiszę własne rozwiązanie tego problemu. Jedna rzecz była dla mnie pewna od samego początku. ...
Daj się poznać 2017 658 dni, 15 godzin, 23 minuty temu 76 rozwiń
Kolejny tydzień prac dobiegł końca. Aplikacja małymi krokami rozwija się. Cały czas staram się dodawać interesujące funkcje lub rozwijać w miarę ciekawe problemy, aby nie zanudzać czytelników bloga moimi cotygodniowymi raportami z postępu prac. Według mnie, najciekawszy problem z jakim się zetknąłem w ostatnim tygodniu było skojarzenie plików z moim programem. Chciałem aby po zainstalowaniu Winbota, można było eksportować z niego pliki, które później będą możliwe do urucho...
Daj się poznać 2017 666 dni, 10 godzin, 17 minut temu 18 rozwiń
Jak już wspominałem w jednym z postów, bardzo odpowiada mi pełna separacja UI od reszty kodu jaką zapewnia wzorzec MVVM i doceniam w pełni jego zalety. Czasem jednak pojawia się klasyczne “g..no w szprychy” podczas jakieś prostej do wykonania w code-behind czynności. Dzisiaj, podczas pracy nad desktopową aplikacją do robota pojawił się problem z bindigiem hasła z PasswordBox-a. O ile w przypadku TextBox-a nie ma z tym żadnego problemu, t...
Daj się poznać 2017 674 dni, 14 godzin, 35 minut temu 180 rozwiń
Kolejną rzeczą, nad którą pracowałem w ramach mojego projektu Winbot, była edycja różnych obiektów za pomocą interfejsu użytkownika. W aplikacji występuje kilka typów obiektów. Mógłbym przygotować oddzielne kontrolki do edycji każdego typu z osobna, ale takie rozwiązanie mnie nie zadowalało. Za każdym razem kiedy chciałbym wprowadzić nowy typ, musiałbym dodatkowo przygotować nową kontrolkę do edycji. Byłoby to dość niewygodne i denerwujące. Moim celem było przygotowanie gen...
Daj się poznać 2017 678 dni, 13 godzin, 45 minut temu 29 rozwiń
W ostatnich tygodniach nieco więcej skupiłem się na pisaniu postów na bloga niż na samym projekcie, nie znaczy to jednak że go odłożyłem. Ponieważ udało mi się kilka tygodni temu podgonić trochę tematy związane z komunikacją, nadal z grubsza biorąc mieszczę się w założonych ramach czasowych. Gotowe jest już większość kodu Arduino (poza częścią związaną z autonomią poruszania się robota) i w zasadzie w większości mam g...
Daj się poznać 2017 679 dni, 14 godzin, 58 minut temu 22 rozwiń
To trochę zadziorne pytanie. Wzorzec MVVM znajduje zastosowanie w światku .NET w aplikacjach WPF/Silverligh (tak BTW, ciekawe czy ktoś jeszcze pracuje w tej technologii) i od niedawna również w mobilno-wieloplatformowym Xamarin FORMS.
Daj się poznać 2017 682 dni, 15 godzin, 30 minut temu 207 rozwiń
W poprzednim artykule rozpoczęliśmy pisanie aplikacji do wyliczania kosztu zamówienia w restauracji. Dzisiaj kontynuujemy prace. Udało nam się już przebrnąć przez kilka kluczowych elementów tworzenia aplikacji przy użyciu WPF oraz wzorca MVVM przy wykorzystaniu MVVM Toolkit. W tej części stworzymy okno z podsumowaniem zamówienia. Wykorzystamy do tego mechanizm do komunikacji pomiędzy modelami widoków oferowany przez MVVM Toolkit. Do dzieła! Ponownie jak wcześniej zaczniemy od zdefiniowani...
Daj się poznać 2017 690 dni, 15 godzin, 27 minut temu 68 rozwiń
Dziś przedstawię początek przygody z WPF w języku C# - na początku będzie to wizualizacja "pusta" tzn, same okienka. W kolejnych wpisach będę poszerzała ten temat o dodatkowe funkcje lub metody. W tym poście przedstawię wizualizację kalkulatora, w kolejnych wpisać tak jak mówiłam - będzie rozszerzenie o kolejne funkcje.
Daj się poznać 2017 692 dni, 15 godzin, 5 minut temu 39 rozwiń
O tym jak stworzyć sobie szablon do biblioteki WPFowej, jak stworzyć pierwszą bibliotekę i po co w ogóle to robić.
Daj się poznać 2017 705 dni, 14 godzin, 22 minuty temu 97 rozwiń
Tak jak zapowiedziałem w poprzednim wpisie traktującym o wzorcu MVVM, chciałbym przedstawić MVVM Toolkit – narzędzie, które znacznie ułatwia korzystanie z tego wzorca. Oczywiście w sieci dostępnych jest wiele innych bibliotek, które także mają za zadnie wspomagać programistów przy implementacji tego wzorca. Jednymi z najpopularniejszych są: Prism oraz Caliburn Micro. Nie będę zagłębiał się w różnice pomiędzy nimi a MVMM Toolkit – chętnych odsyłam do stron tych projektów. Przedstawiając MVVM T...
Daj się poznać 2017 705 dni, 14 godzin, 22 minuty temu 100 rozwiń
Polecamy
Nadchodzące wydarzenia
Najaktywniejsi

