HierarchicalDataTemplate で TreeView を使用していますが、最初よりも高いレベルで IsExpanded プロパティが機能しません。これが私のxamlです:
<TreeView>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Text}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
私の ResourceDictionary には次のものがあります。
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
</Style>
最初の注文を機能させるもの。
より高いインデント レベルでは、 PropertyChangedEventHandler が子に対して起動されないため、IsExpanded は常に false です。
これが私のクラスです:
public class ListItem : INotifyPropertyChanged
{
private bool isExpanded;
public bool IsExpanded
{
get { return isExpanded; }
set
{
if (isExpanded != value)
{
isExpanded = value;
SendPropertyChanged("IsExpanded");
}
}
}
private void SendPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
public ObservableCollection<ListItem> Children { get; set; }
...
}
編集:申し訳ありませんが、修正したコードは機能しています!