ListBox Binding itemIndex
-
אני כעת הבנתי שאתה רוצה מתוך האייטם להציג את מקומו שלו,
הדרך לעשות זאת היא קצת טריקית:<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)