リッチ 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 のパブリック プロパティとして公開する方法はありますか? この問題を解決する他の方法はありますか?