我有一個ItemsControl設立這樣的:額外的元素添加到ItemsControl中的帆布
<Grid>
<ItemsControl ItemsSource="{Binding Asteroids}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Background="Black">
<!-- i want to add another polygon to the canvas-->
<!--<Polygon Name ="ShipPolygon" Points="{Binding Ship}" Fill="Blue" />-->
</Canvas>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Polygon Fill="Gray" Points="{Binding AsteroidPoints}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
正如你所看到的,是ItemsControl的顯示集合的元素,作爲油畫多邊形。但我也希望到其他多邊形添加到該畫布,這裏命名爲「ShipPolygon」。我不能這樣做,因爲我得到一個XMLParseException。什麼是適當的方法來做到這一點?提前致謝!
偉大的答案,最後一個方法是已被列入小行星收集在船上且具有屬性來識別它(如'IsShip')。然後將附加多邊形添加到原始數據模板中,使用'Visibility =「Collapsed」'並具有數據觸發器來檢查IsShip屬性是否爲真,然後摺疊原始多邊形並使新多邊形可見。 – XAMeLi
感謝您的回答。不是我的問題似乎是完全愚蠢的...... :) @XAMeLi:是的,我正在考慮將該船添加到列表中,但我認爲這種方式更優雅。另外,這樣我可以改變船的形狀。 – WonderCsabo