Tôi đang ràng buộc một ItemsControl bằng Canvas dưới dạng ItemsPanelTemplate vào ObservableCollection.Kết hợp các mụcControl với các mục có thể kéo - Element.parent luôn rỗng
Tôi muốn thực hiện các mục có thể kéo bằng cách sử dụng DraggableExtender như được đăng trong Dragging an image in WPF (Tôi không muốn sử dụng biến đổi - tôi cần phải sử dụng Canvas Left và tài sản trên)
Nó định nghĩa là:
<ItemsControl ItemsSource="{Binding Path=Nodes}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Views:NodeView DataContext="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Utilities:DraggableExtender.CanDrag" Value="True" />
<Setter Property="Canvas.Left" Value="{Binding Path=X}" />
<Setter Property="Canvas.Top" Value="{Binding Path=Y}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
DraggableExtender cần cha mẹ của phần tử là Canvas, nhưng phần tử cha của phần tử của tôi (contentpresenter) là rỗng, vì vậy thao tác kéo không hoạt động.
Vì vậy, câu hỏi hiển nhiên là - tôi đang làm gì sai?
Chúc mừng, nó hoạt động như một nét duyên dáng. – Pygmy