TreeViewItem 속성 IsExpanded가 변경 될 때 XAML에서 함수를 호출하는 방법이 있습니까?wpf TreeView - IsExpanded 속성 변경시 함수 호출 방법
나는 그다지 좋지 않은 대안이 모든 TreeViewItems를 반복하고 항목을 올바르게 이해할 경우 item.IsExpanded + = handler 호출을한다고 생각합니다.
아니면 확장기 요소의 클릭 수를 확인할 수 있습니다.
내가하고있는 일은 나무의 확장/축소 상태를 유지하는 것입니다. 첫 번째 질문에 답하기 전에 속성 및 xaml에 대한 나를 정화시키기 위해이를 유지할 수있는 대안을 제안하십시오.
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
<Setter Property="IsExpanded" Value="{Binding IsExpanded}" />
</Style>
</TreeView.ItemContainerStyle>
가 그럼 난 모델을 통해 실행할 수 있으며으로 IsExpanded 값을 얻을하고 저장 :
다음 코드를 실행할 때 코드를 실행해야하므로이 기능은 작동하지 않습니다. 변경이 발생합니다. 그러나 이것은 좋은 해결책입니다. – Mark
그런 다음 IsExpanded 집합에 대한 ViewModel에 코드를 넣으면됩니다. public bool IsExpanded {get {return _IsExpanded; } set {_IsExpanded = value; CallSomeOtherFunc(); }} 물론 INotifyPropertyChanged에 대한 코드는 생략했다. –
이것은 정확히 내가하는 방법이다. 코드가 필요 없습니다. caliburn.micro와 같은 것을 사용하면 모든 것이 훨씬 쉬울 것입니다. –