ListBox Binding itemIndex
-
איך אני יכול למצוא בXAML את itemIndex של ליסט ולהכניס אותו לטקסט בלוק
תודהפורסם במקור בפורום CODE613 ב15/01/2014 19:08 (+02:00)
-
כאשר אני נמצא בליסטבוקס אני רוצה לקבל מידע איזה מספר איבר בתוך הליסט אני נמצא
מה הוא האינדקס של המיקום הנוכחי במערך
ולהציג אותו בפקד כלשהואפורסם במקור בפורום CODE613 ב16/01/2014 12:48 (+02:00)
-
אני כעת הבנתי שאתה רוצה מתוך האייטם להציג את מקומו שלו,
הדרך לעשות זאת היא קצת טריקית:<ListBox AlternationCount="100000" HorizontalAlignment="Left" Height="81" Margin="211,26,0,0" VerticalAlignment="Top" Width="120"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplatedParent.(ItemsControl.AlternationIndex)}" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> יש כאן שתי דברים:
- קביעת מאפיין בשם AlternationCount למס' גבוה בודאי ממה שיהיה בליסט (המאפיין הזה נועד לעיצוב שורות לסירוגין, והוא קובע כל כמה שורות לחזור על האינדקס שעל פיו בDataTemplate ניתן לקבוע עיצוב שונה).
- בDataTemplate איוגד לאינדקס הנוכחי מתוך מחזור האינדוקס.
הבעיה שהוא מבוסס אפס האינדקס, אם תרצה רשימה מבוססת 1 תצטרך או להשתמש בקונוורטר, או לקבוע ערך במחלקת הפריט ולאגד לשם (אם זה למשל אנשי קשר, שיהיה מאפיין בשם Index שאותו תקבע לפני הטעינה לליסט...).
פורסם במקור בפורום CODE613 ב17/01/2014 12:47 (+02:00)
3/6