0
に50 Cell
オブジェクトを記入したので、それぞれRectangle
オブジェクトはデータオブジェクトとしてCell
です。今、インデックスまたはセルオブジェクトに応じて対応するRectangle
要素を取得します。たとえば、index=15
にRectangle
を入れたいとします。データではなく、Rectangle
そのものです。WP7のItemsControlの特定の位置でUIElementを取得する方法は?
どうすればいいですか?
public MainPage()
{
InitializeComponent();
var cells = new List<Cell>();
for (int i = 0; i < 50; i++)
{
cells.Add(new Cell());
}
icCells.ItemsSource = cells;
}
public void sector_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
//some code
//....
var tappedRectangle = (sender as Rectangle);
var spesificRectangle = SOMEHOW_GET_RECTANGLE_AT_POSITION_15;
}
<ItemsControl Name="icBoard" Grid.Column="0" Margin="0">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Fill="#501e4696" Width="30" Height="30" Margin="1" Tap="sector_Tap" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
それは 'VisualTreeHelper.GetChild(itemPresenter、15)この行に失敗します;'。 15から0に変更しましたが、エラーは発生しませんでしたが、Rectangleが返されませんでした。この '((WrapPanel)dependencyObject).Children'はすべての要素(50)を返しますが、私はそれをRectangleにキャストできません。だから**子供**のプロパティは何ですか? – theateist