Chcę zaprojektować niestandardowy panel sterowania dla elementu ListBox
. Istnieją 3 wymagania:WPF: Jak utworzyć niestandardowy panel sterowania?
Należy mieć właściwości
int rows
iint columns
które definiują macierz komórek, panel jest wykonane. To właśnie panel powinien wyglądać (kolory są bez znaczenia, po prostu chciał pokazać, że panel jest składała się z 12 pustych komórek w macierzy 3x4):Jeśli liczba przedmiotów w pozycji sterowania jest mniej niż liczba zdefiniowanych komórek, wszystkie komórki powinny zostać narysowane. Na przykład. jeśli na macierzy 3x4 widocznej na obrazku znajdują się tylko 4 elementy, wszystkie komórki powinny zostać narysowane, a tylko 4 z nich powinny zawierać elementy.
Powinna istnieć możliwość ustawienia, która komórka będzie obsługiwać dany element, poprzez pewne powiązanie danych. Na przykład, powiedzmy, że mam listę osób. Ta lista zawiera elementy typu
Person
, a klasaPerson
zawiera dwie właściwości:X
iY
. Powinienem móc powiązać daneX
zrow
komórki iY
z komórkącolumn
, pozwalając sobie ustawić, która komórka w panelu będzie zawierała osobę z listy.
Jeśli tworzenie panelu sterowania pozycji nie ma sensu, proszę polecić to, co byłoby lepszym rozwiązaniem. Szczerze mówiąc jestem zaskoczony, jak zacząć z tym. Dzięki za całą pomoc. Twoje zdrowie!
dzięki za odpowiedź. Rozwiązanie, którego szukam, nie jest tym, co podałeś. Podoba mi się twój pomysł, ale oto, co nie działa: przy twoim kodzie nie można pominąć elementu "3" i nadal "4" jest pod "2". Muszę umieć określić, który element zostanie użyty, w którym * rectangle * – Boris
Możesz podać "pusty" obiekt dla komórek, które mają być puste. Innymi słowy, zawsze jest dwanaście pozycji, nawet jeśli wszystkie są puste. Następnie po prostu wypełnij niepuste elementy, przypisując do sampleData [wiersz] [col]. –