Entwickler-Ecke
WPF / Silverlight - Items in ItemControl durchnummerieren mit DataTemplate
MacWale - Mo 05.04.10 13:24
Titel: Items in ItemControl durchnummerieren mit DataTemplate
Hallo,
ich möchte Items in einem Itemcontrol durchnummerieren, bzw ich würde gerne den ListIndex + 1 auf dem Formular angezeigt haben. Ist das überhaupt möglich?
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <GroupBox Header="{Binding Path=Bezeichnung}" Margin="5"> <ItemsControl HorizontalContentAlignment="Stretch" Margin="5" DataContext="{Binding Path=Objekt}" ItemsSource="{Binding}" > <ItemsControl.ItemTemplate > <DataTemplate > <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="20"></ColumnDefinition> <ColumnDefinition Width="200"></ColumnDefinition> </Grid.ColumnDefinitions> <Label Grid.Column="0" Content="x."></Label> <TextBox Text="{Binding Path=Bezeichnung}" Grid.Column="1" Margin="1"></TextBox> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </GroupBox> |
Ich könnte mir vorstellen, dass das über einen Converter laufen muss, aber ich keinen Ansatz, wie ich das machen muss.
Vielen Dank schonmal für jeden Tipp.
Mfg
MacWale
Kha - Mo 05.04.10 14:02
:welcome:
Auf jeden Fall musst du deine Liste erst einmal indizieren, im einfachsten Fall also ein
C#-Quelltext
1:
| .Select((i, x) => new KeyValuePair<int, T>(i + 1, x)) |
anhängen. Im Template kannst du dann
XML-Daten
1: 2:
| <Label Grid.Column="0" Content="{Binding Key}"></Label> <TextBox Text="{Binding Value.Bezeichnung}" Grid.Column="1" Margin="1"> |
benutzen.
Ob du diese Transformation nun in einen ValueConverter oder doch lieber in eine View-Model-Property steckst, bleibt dir überlassen :) .
MacWale - Mo 05.04.10 14:25
Danke!!
Manchmal ist die Lösung total easy, man kommt nur nicht drauf.
Gruß
MacWale
Ps: Frohe Ostern
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!