2016-02-11 38 views
1

我有一个简单的自定义树视图组件:显示展开/折叠箭头总是在动态填充

public partial class ThemesTreeView: UserControl, IThemesTreeView { 
    public delegate void ThemeSelected(ThemeModel theme); 
    public event ThemeSelected OnThemeSelection; 

    public delegate void ThemeDoubleClick(ThemeModel theme); 
    public event ThemeDoubleClick OnThemeDoubleClick; 

    public ThemesTreeView() { 
    InitializeComponent(); 
    } 


    private void UserControl_Loaded(object sender, RoutedEventArgs e) {  
    var caseCovers = GetTreeViewItem((Int32) ThemeType.CaseCover, "1", "Case Covers", "album_cover.png"); 
    var musics = GetTreeViewItem((Int32) ThemeType.Music, "1", "Music", "music_run.png"); 
    var movies = GetTreeViewItem((Int32) ThemeType.Video, "1", "Scenic Video Inserts", "video.png"); 

    tvThemes.Items.Add(caseCovers); 
    tvThemes.Items.Add(musics); 
    tvThemes.Items.Add(movies); 
    } 

    private ThemesTreeViewItem GetTreeViewItem(Int32 tag, String uid, String text, String imagePath) { 
    ThemesTreeViewItem item = new ThemesTreeViewItem(); 
    item.Uid = uid; 
    item.Tag = tag; 
    item.IsExpanded = false; 

    // create stack panel 
    StackPanel stack = new StackPanel(); 
    stack.Orientation = Orientation.Horizontal; 

    // create Image 
    Image image = new Image(); 
    image.Source = new BitmapImage(new Uri("pack://application:,,/images/" + imagePath)); 
    image.Width = 16; 
    image.Height = 16; 
    // Label 
    Label lbl = new Label(); 
    lbl.Content = text; 

    // Add into stack 
    stack.Children.Add(image); 
    stack.Children.Add(lbl); 

    // assign stack to header 
    item.Header = stack; 
    return item; 
    } 
} 
} 

我跳过了一些代码下载和填充子节点。当用户点击一个节点时,子节点被下载并添加到树视图。但问题是在添加节点之前没有展开/折叠的箭头。如何始终显示箭头?

回答