그래서 여기에 나는 다시 당신을위한 간단하고 간단한 질문과 함께,하지만 그것은 나를 미치게하고 내가 뭘 계획하고있는 솔루션을 찾을 수없는 것 같습니다.C# WPF 끌어서 놓기 Treeview 요소
내가 재귀 DataTable을
다음Datatable dtStorage;
ds.Tables.Add(dtStorage);
//add a relationship
ds.Relations.Add("rsParentChild", ds.Tables["Storagedata"].Columns["ID"],
ds.Tables["Storagedata"].Columns["CONTENTOF"]);
_rootNodes = ds.Tables["Storagedata"].DefaultView;
_rootNodes.RowFilter = "CONTENTOF IS NULL";
treeView.ItemsSource = _rootNodes;
를 통해 트 리뷰 발생하고있어이 트 리뷰의 XAML입니다 :
<TreeView ContextMenuOpening="TextBlock_ContextMenuOpening" ItemsSource="{Binding RootNodes}" x:Name="treeView" SelectedItemChanged="treeView_SelectedItemChanged" BorderBrush="#FFCACACA" VerticalAlignment="Stretch" FontFamily="Courier New" Margin="0,0,-0.4,-0.2"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling">
<TreeView.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Red" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Red" />
</TreeView.Resources>
<TreeView.ItemTemplate >
<HierarchicalDataTemplate ItemsSource="{Binding rsParentChild}" >
<StackPanel Tag="{Binding LABEL}" Orientation="Horizontal" ToolTip="{Binding ADDITIONALINFO}" Margin="0,2,0,0" >
<Image x:Name="TheImage" Tag="{Binding TYPE}" Margin="0,0,2,0" Width="20" Height="20">
<!--Loaded="Image_Loaded"-->
<Image.ToolTip>
<TextBlock Text="{Binding ID, StringFormat=ID:{0}}" />
</Image.ToolTip>
</Image>
<TextBlock Text="{Binding LABEL}" ContextMenuOpening="TextBlock_ContextMenuOpening" VerticalAlignment="Center" Padding="2,0,0,0" ToolTip="{Binding ADDITIONALINFO}" >
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
지금까지 너무 좋아. 내 Treeview가 예상대로 생성되며 멋진 Treeview를 얻습니다.
그러나 나는 끌기를 얻고 싶습니다 & 떨어지는 기능.
내 문제는 내가 검색 한 거의 모든 자습서가 저에게 효과적이지 않은 이유입니다. TreeViewItems가 없습니다. 나를 위해 DataRowView가 있습니다.
단순 드래그 앤 드롭 기능을 추가 할 수 있습니까?
ID-1을 ID-2로 이동하려고합니다. 여기서 ID-1은 선택된 값이고 ID-2는 대상 DataRowView입니다.
도움이 될 것입니다. 팁, 힌트, 해결책 또는 비평. 그래서 사전
DragnDrop 핸들러에 TreeViewItem이 있습니까? 그렇다면 DataRowViews (TreeViewItem.DataContext as DataRowView)를 참조하십시오. https://stackoverflow.com/questions/1026179/drag-drop-in-treeview – Rekshino
감사합니다. 불행히도이 기사에서는 파일을 드래그하는 방법에 대해 설명합니다. INTO 트 리뷰. 내가하려는 것은 드래그 앤 드롭으로 A에서 B로 무언가를 옮길 수있는 기능을 갖추는 것입니다. 내가 말했듯이, 현재는 (TreeViewItem)이 모두 필요하기 때문에 드래그/드롭 기능이 작동하지 않고 코드에서 제공 할 수 없습니다. – Sunrunner
당신은 그것을 가지고 있습니다. TreeViewItem의 스타일을 설정하고 마우스 이벤트를 트리거하면 DataContext에 DataRowView가있는 TreeViewItem이 표시됩니다. https://stackoverflow.com/questions/639884/highlight-treeview-item-being-dragged-over를 참조하십시오. – Rekshino