W artykule „Przeszukiwanie dysku – zbieranie informacji na bieżąco” użyłem kontrolki ListBox do wyświetlania informacji o znalezionych plikach. Przypomnijmy, że były to: nazwa oraz ścieżka do pliku w postaci DataTemplate. W przypadku, gdy znajdziemy 200, 300 plików (wpisów do listy) wszystko działa jak należy. Co natomiast dzieje się jeżeli znajdziemy ich kilka tysięcy? Wszystkim programistom o słabych nerwach (jeżeli takowi istnieją ) stanowczo odradzam zaglądanie do menedżera zadań.
Silverlight 4736 dni, 16 godzin, 56 minut temu 230 źrodło rozwiń
Kilka miesięcy temu pisałem o attached behaviour jako sposobie na wiązanie zdarzeń do komend. Sposób całkowicie poprawny i wygodny w użyciu. Dzisiaj jednak chciałbym przedstawić nieco prostsze rozwiązanie z wykorzystaniem bibliotek z Expression Blend SDK. Jeśli jeszcze nie posiadacie SDK możecie je ściągnąć ze strony Microsoft’u. Do projektu dołączamy bibliotekę System.Windows.Interactivity (SDK). Następnie w pliku XAML spróbujmy powiązać zdarzenie MouseMove z komendą ShowMsgCmd: Namespace “i” powin...
Po długiej przerwie związanej z przeprowadzką, czas powrócić do prowadzenia blog’a i pisania artykułów. Mam nadzieję, że od dziś posty będą pojawiać się częściej i bardziej regularnie chociaż nie wszystko jeszcze idzie po mojej myśli. No to zaczynamy… Visual State Manager został wprowadzony w wersji 4.0 Wcześniej mogliśmy go spotkać w Silverlight lub WPF Toolkit. Służy do zmieniania wyglądu kontrolek na podstawie zdefiniowanych stanów. Zastosowanie jest podobne więc do triggerów jednak różnica polega na ...
W tym artykule przedstawię w jaki sposób przeszukiwać dysk twardy tak, aby użytkownik był informowany o aktualnie sprawdzanym katalogu oraz posiadał listę już odnalezionych plików. Oczywiście warunkiem koniecznym jest aby interfejs użytkownika był cały czas aktywny, natomiast sam użytkownik mógł w dowolnym momencie przerwać przeszukiwanie. Moduł będzie zintegrowany z interfejsem w WPF.
DataGrid i ja Z programowaniem okienek w Windows rozstałem się na drugim roku studiów. Moje życie zawodowe tak się ułożyło, że nigdy później nie tknąłem Win32 API, MFC, WinForms,a tym bardziej WPF'a. W noworocznym postanowieniu ustaliłem, że spróbuję opanować chociaż podstawy Windows Presentation Foundation. W ramach realizacji postanowień, moja uwaga skupiła się na problemie prezentacji danych w postaci tabelarycznej w WPF. W .NET Framework 3.5 do dyspozycji programisty WPF był WPF Toolkit, w którego...
W poprzedniej części tutoriala, poświęconej tworzeniu własnych kontrolek użytkownika, wspomniałem co nieco o zasobach i stylach, które możemy umieścić w pliku dodatkowym, bądź też w aktualnie przetwarzanym dokumencie. Dziś chciałbym rozszerzyć trochę temat i pokazać bardziej praktyczne wykorzystanie zasobów. Dowiecie się między innymi o tym jak: Utworzyć zasoby lokalne dla wybranego okna/elementu Utworzyć zasoby globalne dla całej aplikacji Jak tworzyć powtarzalne elementy jako zasoby (np. menu konteks...
Architektura 4764 dni, 18 godzin, 43 minuty temu 160 źrodło rozwiń
Expression Blend, WPF i dziwne błędy w XAML
Silverlight 4796 dni, 4 godziny, 16 minut temu 136 źrodło rozwiń
Co robić gdy użytkownik jest niecierpliwy? Pracując nad nową wersją Replication Explorer'a postanowiłem ulepszyć UX (User Expirience) dialogu do łączenia się z serwerem (Dystrybutorem replikacji). W aktualnej wersji programu, w momencie gdy użytkownik wciśnie przycisk 'Connect' cały UI przestaje odpowiadać do momentu połączenia z Dystrybutorem. Nie można anulować akcji łączenia, trzeba czekać 30 sekund żeby komunikat o niemożności zlokalizowania serwera został wyświetlony itp. Rozwiązanie problem...
W ramach podsumowania tematów związanych z „70-511: Enhancing Usability”, zapraszam do przeczytania poszczególnych postów (wymienionych niżej), pobrania kodu źródłowego oraz obejrzenia prezentacji przedstawionej przeze mnie w ramach „Study Group 70-511” organizowanej przez Łódzką Grupę Profesionalistów IT & .NET. Implementacja przetwarzania asynchronicznego (teoria) Implementacja przetwarzania asynchronicznego (przykład) Implementacja „Globalizacji” i „Lokalizacji” (teoria) Implementacja „Global...
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 4818 dni, 20 godzin, 27 minut temu 98 źrodło rozwiń
Jeden z czynników, który warunkuje dobrego programistę, to umiejętność tworzenia elastycznego i niepowtarzalnego kodu. Jeśli jakiś element naszego kodu jest powtarzalny, bądź schematyczny, to z pewnością warto się zastanowić nad napisaniem metody, która zawrze ten kod i będzie mogła być wykorzystana wielokrotnie. Napisana przez nas aplikacja stanie się bardziej przejrzysta i z pewnością zmaleje również ryzyko popełnienia błędu, a wszelkie zmiany będzie można wykonać w jednym miejscu. Podobnie sprawa wyg...
Architektura 4826 dni, 2 godziny, 21 minut temu 298 źrodło rozwiń
Od ostatniej części tutoriala WPF, poświęconej tworzeniu prostego kalkulatora minęło już kilka tygodni, więc czas najwyższy na nową część. Dziś zajmiemy się zagadnieniem niezwykle ważnym z punktu widzenia wykorzystania własnych danych w połączeniu z interfejsem graficznym. Mowa oczywiście o bindowaniu, czyli wiązaniu danych wyświetlanych w kontrolkach, a pochodzących np. z naszych własnych obiektów, właściwości, bazy danych etc.
W ramach mojego przygotowania do egzaminu 70-511 (Windows Applications Development with Microsoft .NET Framework 4) oraz uczestnictwa w „StudyGroup” organizowanym przez Łódzką Grupę Profesionalistów IT & .NET opracowałem zagadnienia związane z tematem określonym w training kicie jako „Enhancing Usability”. Z moimi czytelnikami chciałbym podzielić się moimi opracowaniami. W tym wpisie będzie o jednoczesnym wykorzystaniu i integracji Windows Forms i WPF w jednej aplikacji. Zacznijmy może od stwierdzeni...
Wzorzec MVVM jest najpopularniejszym rozwiązaniem architektonicznym dla WPF. Ze względu na wbudowany mechanizm wiązań, programiści chętnie sięgają po ten wzorzec projektowy. Jednym z problemów jest podpięcie zdarzenia. W większości przypadków możemy powiązać komendę za pomocą właściwości Command. Co jednak w przypadku gdy potrzebujemy specyficzne zdarzenie np. OnMouseDown? WPF niestety nie udostępnia właściwości typu OnClickCommand – do dyspozycji mamy tylko OnClick zwracający EventHandler a nie ICommand...
W ramach mojego przygotowania do egzaminu 70-511 (Windows Applications Development with Microsoft .NET Framework 4) oraz uczestnictwa w „StudyGroup” organizowanym przez Łódzką Grupę Profesionalistów IT & .NET opracowałem zagadnienia związane z tematem określonym w training kicie jako „Enhancing Usability”. Z moimi czytelnikami chciałbym podzielić się moimi opracowaniami. W tym wpisie będzie o implementacji „Globalizacji” i „Lokalizacji”.Globalizacja i lokalizacja to różne procesy związane z internacj...
W ramach kontynuacji tematu rozpoczętego we wpisie „70-511: Enhancing Usability: Implementacja przetwarzania asynchronicznego (teoria)”, zapraszam do zapoznania się z przykładem kodu źródłowego, który będzie ilustracją do przedstawionej teorii (przykład kodu źródłowego dotyczy implementacji przetwarzania asynchronicznego, ze szczególnym naciskiem na to, jak jest to rozwiązane w WPF).W ramach przykładu zostanie pokazane wykorzystanie BacgroundWorker'a i Dispatcher'a. W przykładzie zostanie wykorzystane ...
W ramach mojego przygotowania do egzaminu 70-511 (Windows Applications Development with Microsoft .NET Framework 4) oraz uczestnictwa w „StudyGroup” organizowanym przez Łódzką Grupę Profesionalistów IT & .NET opracowałem zagadnienia związane z tematem określonym w training kicie jako „Enhancing Usability”. Z moimi czytelnikami chciałbym podzielić się moimi opracowaniami. W tym wpisie będzie o implementacji przetwarzania asynchronicznego, ze szczególnym naciskiem na to, jak jest to rozwiązane w WPF.P...
Strona główna Przystępując do tłumaczenia aplikacji WPF miałem dokładny plan jak się za to zabrać. Mianowicie postanowiłem użyć narzędzia LocBaml, o którym dowiedziałem się z training kit'a do egzaminu 70-502. Opis całej procedury można znaleźć tutaj. Praktyka pokazała jednak, że narzędzie to pozostawia bardzo dużo do życzenia. Dalej opiszę kolejne kroki pracy z LocBaml wraz z komentarzem jak to wygląda w praktyce. UIDs Mechanizm wielojęzyczności aplikacji w WPF koncepcyjnie zbliżony jest to tego co z...
Witajcie w trzeciej części tutoriala do WPF. W dwóch poprzednich wpisach (WPF Tutorial - wprowadzenie oraz WPF Tutorial - obsługa kontrolek), powiedzieliśmy sobie m.in o: WPFie ogółem Języku znaczników XAML Podstawowych właściwościach WPF Kontrolkach Ponieważ wiemy już całkiem sporo, to czas dowiedzieć się, czy z tych informacji można zrobić jakiś sensowny użytek, np. budując prosty, tytułowy kalkulator:) Jeśli zatem chcecie wykorzystać zgromadzoną dotychczas wiedzę, do zbudowania czegoś praktycznego...
Architektura 4861 dni, 5 godzin, 26 minut temu 361 źrodło rozwiń
Pracując z WPFem/XAMLem wielokrotnie natrafiałem na kod tego typu (bindowanie ViewModel do DataContext): Jest to dość wygodne rozwiązanie w małych i średnich aplikacjach nie wykorzystujących zaawansowanych wzorców prezentacyjnych (MVP, MVVM itp). Jednak ma ono jedną, podstawową wadę. Specyfika XAML’a wymusza istnienie bezparametrowego konstruktora w WindowViewModel, przy użyciu którego będzie tworzony obiekt przypinany do DataContext. Tworzenie obiektów w XAM...