Caliburn.Micro TreeView 添加一个静态元素

Caliburn.Micro TreeView add a static element

我有一个可用的 TreeView

                        <TreeView x:Name="TVAccess" ItemsSource="{Binding AccessLevel}" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.ColumnSpan="3">
                        <TreeView.ItemTemplate>
                            <HierarchicalDataTemplate  >
                                <StackPanel Orientation="Horizontal">
                                    <!--<CheckBox Checked="{Binding Checked}"/>-->
                                    <TextBlock Text="{Binding Text}" />
                                </StackPanel>
                            </HierarchicalDataTemplate>
                        </TreeView.ItemTemplate>
                    </TreeView>

它绑定到这样定义的 AccessLevel 对象

public BindableCollection<UserLibrary.DataAccess.TextHelper.TreeViewItem> AccessLevel { get; set; }

这很好用 结果是这样

我想添加一个名为 "Access Right" 的固定第一级,我该怎么做?

编辑 1

我想要的结构是这样的:

感谢您的帮助。

编辑 2 - TreeViewItem class

public class TreeViewItem
{
    public string Text { get;  set; }
    public bool Checked { get;  set; }
}

编辑 3 - 修改 TreeViewItem Class

所以如果我像这样修改我的调用,现在的问题是将它绑定到 TreeView

    public class TreeViewItem
{
    public string Text { get;  set; }
    public bool Checked { get; set; }

    public IEnumerable<TreeViewItem> SubTreeViewItem { get; set; } 
}

TreeViewItem 插入索引 0 处的源集合。

AccessLevel.Insert(0, new UserLibrary.DataAccess.TextHelper.TreeViewItem() { Text = "Access Right" } );

或将 ItemsSource 属性 设置为 CompositeCollection 并在 XAML 标记中定义固定项:

<TreeView x:Name="TVAccess" Grid.Row="1" Grid.Column="0" 
                  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.ColumnSpan="3">
    <TreeView.Resources>
        <CollectionViewSource x:Key="source" Source="{Binding AccessLevel}" />
    </TreeView.Resources>
    <TreeView.ItemsSource>
        <CompositeCollection>
            <local:TreeViewItem Text="Access Right" />
            <CollectionContainer Collection="{Binding Source={StaticResource source}}" />
        </CompositeCollection>
    </TreeView.ItemsSource>
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate  >
            <StackPanel Orientation="Horizontal">
                <!--<CheckBox Checked="{Binding Checked}"/>-->
                <TextBlock Text="{Binding Text}" />
            </StackPanel>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>