Każdy programista prędzej czy później stanie przed koniecznością zmiany danych wyświetlonych w kontrolce "ListBox" lub "ListView". W internecie można znaleźć kilka dróg rozwikłania tego problemu, chciałbym przedstawić Wam, ten który przypadł mi do gustu :)
Radosław Dąbrowicz
Przemyślenia, tricki oraz rozwiązania problemów programisty.
wtorek, 17 lipca 2012
czwartek, 12 lipca 2012
Must create DependencySource on same Thread as the DependencyObject. Przeciwdziałanie!
Wiadomo, że aktualizowanie danych miedzy programem a bazą danych może zająć chwilę.
Aby użytkownik był świadom tego co się w danej chwili wykonuję dobrze jest wyświetlić wskaźnik postępu a operacje na danych wykonać w wątku pobocznym programu.
Podczas takich operacji otrzymałem błąd "Must create DependencySource on same Thread as the DependencyObject."
Aby użytkownik był świadom tego co się w danej chwili wykonuję dobrze jest wyświetlić wskaźnik postępu a operacje na danych wykonać w wątku pobocznym programu.
Podczas takich operacji otrzymałem błąd "Must create DependencySource on same Thread as the DependencyObject."
środa, 4 lipca 2012
Reflection - dostęp do właściwości klasy.
Spotkałem się ostatnio z koniecznością użycia właściwości z obiektów różnych typów, nie mających ze sobą nic wspólnego. Każdy z tych typów mógł posiadać właściwość "Synchronized" typu enum, w przypadku gdyby taka "property" istniała miałem pobrać jej wartość i po porównaniu z wartością wzorcową ustawić tą wartość na nową.
Do takich zadań możemy użyć funkcjonalności z "Reflection".
Do takich zadań możemy użyć funkcjonalności z "Reflection".
sobota, 30 czerwca 2012
RichTextBox jak przesłać dane?
Pisałem komunikator internetowy, wyświetlanie danych w programie tego typu powinno być efektowne. To znaczy, że powinno umożliwiać wyświetlanie różnego typu tekstów - pogrubionych, pochyłych, różnych wielkości, kolorów itd. Najwłaściwszą kontrolką do zadań tego typu jest według mnie RichTextBox.
Niestety nie umożliwia ona "bindowania" danych!!!
Niestety nie umożliwia ona "bindowania" danych!!!
niedziela, 24 czerwca 2012
Codility - Closest ascenders - rozwiązanie.
Codility umożliwia dla programistów certyfikowanie samych siebie, czyli wchodzisz na stronę, rozwiązujesz podany problem i możesz szczycić się certyfikatem Codility... do czasu wystawienia następnego zadania :)
Poniżej chciałbym opisać sposób rozwiązania zadania polegającego na poszukiwaniu najbliższej większej wartości w tablicy intów (closest ascenders). Zadanie to zaliczyłbym do trudnych, ale pewnie tylko dlatego...
Poniżej chciałbym opisać sposób rozwiązania zadania polegającego na poszukiwaniu najbliższej większej wartości w tablicy intów (closest ascenders). Zadanie to zaliczyłbym do trudnych, ale pewnie tylko dlatego...
wtorek, 19 czerwca 2012
Moje boje z "Binding" - konwertery
Właściwość "Converter" podczas umożliwia nam przekształcenie powiązanych elementów na oczekiwaną wartość zwracaną przez "Binding".
Przykładowo "bindujemy" wartość a=2 a chcemy wyświetlić a*a, to jest właśnie zadanie dla konwertera!
Przykładowo "bindujemy" wartość a=2 a chcemy wyświetlić a*a, to jest właśnie zadanie dla konwertera!
piątek, 15 czerwca 2012
Jak sterować wyświetlaniem danych na widoku? Rozwiązaniem jest...
Kontynuując wątek "bindowania", chciałem wytłumaczyć w jaki sposób z klasy "ViewModel" przypisanej do DataContext możemy wpływać na zmianę na widoku.
Należy wyjaśnić tę kwestię gdyż jest ona bardzo istotna i będę jej używał podczas dalszego opisywania moich bojów z "Binding" :).
Cofnijmy się więc do definicji klasy "ViewModel'u".
Należy wyjaśnić tę kwestię gdyż jest ona bardzo istotna i będę jej używał podczas dalszego opisywania moich bojów z "Binding" :).
Cofnijmy się więc do definicji klasy "ViewModel'u".
Etykiety:
Binding,
C#,
event,
Expression,
GetPropertyName,
INotifyPropertyChanged,
lock,
ObservableCollection,
PropertyChangedEventHandler,
thread safe,
ViewModel,
WPF
Subskrybuj:
Komentarze (Atom)