0
Public Class UITreeview
    Inherits System.Windows.Controls.TreeView

Public Shared ExpandAllproperty As DependencyProperty
Shared Sub New()
        DefaultStyleKeyProperty.OverrideMetadata(GetType(UITreeview), New FrameworkPropertyMetadata(GetType(UITreeview)))
        UITreeview.ExpandAllproperty = UITreeViewItem.IsExpandedProperty.AddOwner(GetType(UITreeview), New FrameworkPropertyMetadata(True, FrameworkPropertyMetadataOptions.Inherits))
    End Sub
Public Property ExpandAll As Boolean
        Get
            Return Me.GetValue(ExpandAllproperty)
        End Get
        Set(value As Boolean)
            Me.SetValue(ExpandAllproperty, value)
        End Set
    End Property 
....
End Class

スタイルを使用して設定した独自の依存関係プロパティを作成しました

<Style  TargetType="{x:Type UINat:UITreeview}">
    <Setter Property="ExpandAll" Value="False" />
</Style>

しかし、残念ながら私はエラーが発生しています:

System.ArgumentNullException: 値を null にすることはできません。パラメータ名: プロパティ。

私の目的は、リソース XAML から TreeviewItem.IsExpanded プロパティを制御することです。

4

1 に答える 1

0

ExpandAll所有者の型を既存の依存関係プロパティに追加して、新しい依存関係プロパティを作成することはできませんIsExpanded

AddOwner の代わりにRegisterを使用して、新しいプロパティを登録します。

Public Shared ReadOnly ExpandAllproperty As DependencyProperty =
    DependencyProperty.Register(
        "ExpandAll", GetType(Boolean), GetType(UITreeView),
        New FrameworkPropertyMetadata(True, FrameworkPropertyMetadataOptions.Inherits))
于 2012-11-03T15:18:48.057 に答える