Hallo ich habe folgendes Problem,
ich möchte an ein ItemsControl eine ObserableCollection<KoordinatenObject> binden. Das KoordinatenObject soll in dem ItemsControl als Button dargestellt werden, es enthält die Properties X,Y,Höhe und Breite. Das Ergebnis sollte in etwa so aussehen
| Button1 | Button2 | Button3 |Button4| Button5 |
| Button1 | Button2 | Button3 | Button4 |
|Button1|Button2 | Button3 | Button4 | Button5 | Button6 | Button7 |
| Button1 | Button2 | Button3 |Button4| Button5 |
.
.
.
... mein XAML Code sieht wiefolgt aus
<ItemsControl Background="Red" ItemsSource="{Binding Path=Sh}" HorizontalAlignment="Left"
VerticalAlignment="Top">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Button HorizontalAlignment="Left"
VerticalAlignment="Top"
BorderThickness="0"
BorderBrush="Black"
Width="20" Height="{Binding Path=Height}"
Margin="{Binding Path=ShLocation,Converter={StaticResource PointToMargin}}"
Content="{Binding Path=ShNumber}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Der Margin (PointToMargin Converter) soll die X,Y Koordinenen bestimmen,also 0,0,0,0 ; 90,0,0,0 ; 180,0,0,0 zweite Zeile 0,30,0,0 ; 45,30,0,0 ; 90,30,0,0 usw.
Leider funktioniert das nicht so das ergebnis sieht wiefolgt aus:
|Button 1|
|Button 2|
|Button 3|
Mit meiner Methode ist es also offensichtlich nicht möglich in einen ItemsControl die Buttons hintereinander zu zeichnen. Die Buttons sind nach unten versetzt die Y - Koordinate im Margin wird also ignoriert ?!?
Erfolgt die Auflstung innerhalb des ItemsConrol in einen StackPanel?
Was mach ich falsch? Kann man das Problen mit einem ItemsControl Überhaupt lösen? Sollte ich die Anordnung der Buttons mittels Margin festlegen, gibt es da andere/bessere möglichkeiten?
thx ogre