WPF 中的 TreeView 相關實用技巧如下
響應 TreeViewItem 的雙擊事件
這是一個較怪異的問題,如果在 TreeView 的 MouseDoubleClick 中去處理 SelectedItem 時,則在當一個樹節點下只有一個子節點時,雙擊該子節點會轉到它的父節點上。
使用方法應當是這樣。先在 TreeView 中定義如下資源(注意是 TreeView 的資源)
<TreeView.Resources> <Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource {x:Type TreeViewItem}}"> <EventSetter Event="MouseDoubleClick" Handler="OnItemMouseDoubleClick"/> </Style> </TreeView.Resources>
然后,在 OnItemMouseDoubleClick 中使用 Sender 作為雙擊的節點即可。
private void OnItemMouseDoubleClick(object sender, MouseButtonEventArgs e) { TreeViewItem item = (TreeViewItem) sender; //do it... }
自定義節點樣式
節點的 Header 是一個 Object 對象,因此,可以定義一個自定義控件,實例化后賦值給它就可以了。
自定義節點的 Tooltip
同自定義節點樣式一樣。