Я создаю UserControl для богатого TreeView (тот, который имеет контекстные меню для переименования узлов, добавления дочерних узлов и т. Д.). Я хочу иметь возможность использовать этот элемент управления для управления или навигации по любым иерархическим структурам данных, которые я создам. Я в настоящее время он работает для любой структуры данных, которая реализует следующий интерфейс (интерфейс не должен быть фактически реализован, однако, только присутствие этих элементов требуется):Переменные привязки в WPF
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? Есть ли другой способ решения этой проблемы?