Мне нужно перетаскивать элементы между несколькими itemcontrols, каждый связан с собственной коллекцией , когда я перетаскиваю элемент, мне нужно знать, с какого элемента управления он изначально был вытащен.get itemscontrol reference from item
перетаскиваемый шаблона элемента:
<DataTemplate>
<Ellipse MouseDown="Ellipse_MouseDown" ></Ellipse>
</DataTemplate>
в itemscontrols:
<ItemsControl Name="Pipe23" ItemsSource="{Binding Path=Pipes[23].Checkers}" ItemTemplate="{StaticResource PipeDataItem}"/>
<ItemsControl Name="Pipe22" ItemsSource="{Binding Path=Pipes[22].Checkers}" ItemTemplate="{StaticResource PipeDataItem}"/>
<ItemsControl Name="Pipe21" ItemsSource="{Binding Path=Pipes[21].Checkers}" ItemTemplate="{StaticResource PipeDataItem}"/>
<ItemsControl Name="Pipe20" ItemsSource="{Binding Path=Pipes[20].Checkers}" ItemTemplate="{StaticResource PipeDataItem}"/>
при перетаскивании элемента на событие MouseDown я могу ссылаться на элемент тащат, но я также необходимо ссылаться на ItemsControl он был вытащен из: как это можно сделать?
private void Ellipse_MouseDown(object sender, MouseButtonEventArgs e)
{
Ellipse ellipse = (Ellipse)sender;
Checker checker = (Checker)ellipse.DataContext;
// how do i reference the itemsconrtol containing the current ellipse (item)
}
блог Рэйчел имеет большое решение, VisualTree хелперы HTTP: // rachel53461 .wordpress.com/ –