locked
TreeViewItem Drag 時に現れる Border が変化する理由は? RRS feed

  • 質問

  • 以下のような xaml で
    図1のような TreeView を作ったとします。
    この TreeView は DragDrop で並べ替え可能です。
     
    TreeView そのものは、
    DataSources Pane から DataSource を Drag して自動生成したものです。
     
    <UserControl ...> 
       <Grid ...>
          ...
          <toolkit:TreeViewDragDropTarget AllowDrop="True" ...>
             <sdk:TreeView ItemsSource="{Binding ElementName=cDomainDataSource, Path=Data}" .../>
          </toolkit:TreeViewDragDropTarget>
       </Grid>
    </UserControl>
    
     
    図1:並べ替え可能な TreeView
     
     
     
    Item の Drag 中に、
    Drop 先 (destination) の Item が四角い Border で囲まれます。
    但し、囲まれ方が二種類あるのです (図2, 3)。
     
    図2:Item の文字列部分のみを囲む小さな Border
     
    図3:Item を「行」のように囲む大きな Border
     
     
    何故このように2通りの現れ方をしてしまうのでしょう?
    2012年1月4日 7:50

回答

すべての返信

  • 小さいBorder:ノードが展開されている場合
    大きいBorder:ノードが展開されていない場合

    のように分けているように見えますが、少し微妙な動きもしますね・・・。
    もともとExperimentalとしてリリースされているので、どんどんフィードバックしてあげると良いのではないでしょうか。
    2012年1月4日 16:23
  • 小さいBorder:ノードが展開されている場合
    大きいBorder:ノードが展開されていない場合

    のように分けているように見えます
    あぁ、そんな感じもします。
    多分当たってます。
     
    dragdrop の destination として
    どちらの状態を扱えばいいんだろう?
    と疑問になっていました。
     
    もともとExperimentalとしてリリース
    あ、Experimental なんですね。
    気が付きませんでした。
     
     
    今気になっている変な挙動は、
    TreeView が入れ子になっていないフラットな状態だと、
    並べ替えが効かず、
    必ず入れ子にさせられてしまう、
    というものです。
    未確認点が1つありますので、現状確実ではありませんが。
    2012年1月4日 17:40
  • >TreeView が入れ子になっていないフラットな状態だと、
    >並べ替えが効かず、
    >必ず入れ子にさせられてしまう、
    僕の環境だと起きないですね。

    ☆TFC Software http://www.tfc-software.com/
    ☆プログラミングに関するブログ http://www.tfc-software.com/Blogs.aspx
    • 回答としてマーク 山本春海 2012年1月13日 8:12
    2012年1月5日 13:11
  • ご確認、有り難うございます。
     
    私も再度確認して見ましたが、今度は Item 間の横棒が出ました。
     
    <sdk:HierarchicalDataTemplate> の有無で、横棒が出たり出なかったりしているのかな?
    というのが「未確認点が1つ」でしたが、
    <sdk:HierarchicalDataTemplate> を消してみても横棒は出ています。
     
    複数の環境で期待通り出ているということは、うまくっているのでしょう。
     
     
    本件は、ここで締めたいと思います。
    Uchida さん、ありがとうございました。
    2012年1月8日 16:37