我正在为丰富的 TreeView 创建一个 UserControl(具有用于重命名节点、添加子节点等的上下文菜单)。我希望能够使用此控件来管理或导航我将创建的任何分层数据结构。我目前让它适用于实现以下接口的任何数据结构(实际上不需要实现接口,但是,只需要这些成员的存在):
interface ITreeItem
{
string Header { get; set; }
IEnumerable Children { get; }
}
然后在我的 UserControl 中,我使用模板将我的树绑定到数据结构,如下所示:
<TextBlock x:Name="HeaderTextBlock" Text="{Binding Path=Header}" />
我想做的是在我的 RichTreeView 中定义每个成员的名称,使其适应一系列不同的数据结构,如下所示:
class MyItem
{
string Name { get; set; }
ObservableCollection<MyItem> Items;
}
<uc:RichTreeView ItemSource={Binding Source={StaticResource MyItemsProvider}}
HeaderProperty="Name" ChildrenProperty="Items" />
有没有办法将 UserControl 内的绑定路径公开为该 UserControl 的公共属性?有没有其他方法可以解决这个问题?