2014-03-19 82 views
0

不知道爲什麼這不起作用。 在我的WPF中,我爲ItemContainerStyle中的DROP事件和後面的代碼中的事件處理程序定義了一個事件。但是當我拖動文件時,我得到一個帶有診斷線的圓圈。 這裏是WPF代碼如何從資源管理器中刪除文件到樹視圖節點

<TreeView ItemsSource="{Binding Roots}" Name="Tree" Margin="0,22,0,0" Background="AliceBlue"> 
<TreeView.ItemContainerStyle> 
       <!--  This Style binds a TreeViewItem to a TreeViewItemViewModel.  --> 
       <Style TargetType="{x:Type TreeViewItem}"> 
        <EventSetter Event="Drop" Handler="treeView_Drop"></EventSetter> 
        <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> 
        <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> 
        <Setter Property="FontWeight" Value="Normal" /> 
        <Setter Property="ContextMenu" Value="{Binding ContextMenu}" /> 
        <Style.Triggers> 
         <Trigger Property="IsSelected" Value="True"> 
          <Setter Property="FontWeight" Value="Bold" /> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </TreeView.ItemContainerStyle> 

後面的代碼只是一個骨架了。我很快樂,只是爲了拿一個破發點

private void treeView_Drop(object sender, DragEventArgs e) 
    { 
     try 
     { 
      if (e.Data.GetDataPresent(DataFormats.FileDrop, true)) 
      { 
       // just a skeleton for now 
      } 
     } 
     catch (Exception ex) 
     { 

     } 
    } 

所有的想法,歡迎和感謝

回答

1

應設置TreeViewItem類的AllowDrop屬性:

<Setter Property="AllowDrop" Value="True" /> 
+0

我試過了,它沒有工作。我讀過,您不能將文件放在以我的管理員模式運行的應用程序中。如果是這樣的話,我將不得不重新設計。這是真的嗎?如果是這樣,爲什麼?安全問題?無論如何,謝謝你的迴應。 – Rick

0

OK,昨晚我找到輸出一些可能對別人有幫助的好信息。 確實,我無法從Windows資源管理器中將文件放到我的樹視圖節點上,因爲我以管理員模式運行。

然後我創建了一個按鈕,從click事件中運行了一個窗口對話框,在導航到一個文件後,它能夠成功地將它放到樹視圖節點上。

事實上,我有兩個事件發生。首先是事件,我在ItemContainerStyle中的樹狀結點本身上進行設置。另一個事件是用於HeirarchicalDataTemplate中的堆棧面板實現。

我很驚喜地看到它的工作。 (這種情況多久發生一次?)但現在我意識到我還沒有測試過它作爲部署(darn)

無論如何,奧利弗是唯一一個申請,所以我要給他一些工藤的權利 - 謝謝

相關問題