2 つのカスタム コントロールを作成しました。1. LeafControl 2- LeafItemControl。LeafControl で、タイプ「List」の依存関係プロパティを「Items」として作成しました。
また、LeafItemControl では、ContentControl タイプの依存関係プロパティ呼び出し「ItemDetails」をもう 1 つ公開しました。
<!---Base Custom Control "LeafControl"-->
<uc:LeafControlItem.ItemDetails> <!--"ItemDetails" is a Dependency Property of type "LeafControl" in "LeafControlItem" custom control --> <uc:LeafControl> <!--Nested Control of same type ???--> <uc:LeafControl.Items> <uc:LeafControlItem Level="Some Type"> <uc:LeafControlItem.ItemContent> <GroupBox BorderThickness="0"> <StackPanel Orientation="Horizontal"> <TextBox Text="Property"></TextBox> </StackPanel> </GroupBox> </uc:LeafControlItem.ItemContent> </uc:LeafControlItem> <uc:LeafControlItem Level="Variable"> <uc:LeafControlItem.ItemContent> <GroupBox BorderThickness="0"> <StackPanel Orientation="Horizontal"> <TextBox Text="Ellipse2.Top"></TextBox> </StackPanel> </GroupBox> </uc:LeafControlItem.ItemContent> </uc:LeafControlItem> </uc:LeafControl.Items> </uc:LeafControl> </uc:LeafControlItem.ItemDetails> </uc:LeafControlItem>
ベースカスタムコントロールの「アイテム」にアクセスしようとすると。すべての子カスタム コントロールが追加されるのはなぜですか? 各カスタム コントロール オブジェクト (ベースと子) に個別の「アイテム」が含まれるようにするにはどうすればよいですか。
次のように、ベース カスタム コントロールで依存関係プロパティを使用しました。
#region LeafControlItemCollection
public List<LeafControlItem> Items
{
get { return (List<LeafControlItem>)GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
}
public static readonly DependencyProperty ItemsProperty =
DependencyProperty.Register(
"Items", typeof(List<LeafControlItem>), typeof(LeafControl),
new FrameworkPropertyMetadata(new List<LeafControlItem>(), null, null)
);
#endregion
私が間違っているところを提案してください。