TreeView
컨트롤을 사용하여 내 응용 프로그램에서 탐색을 구현하기 위해 프레젠테이션 모델을 사용하고 있습니다. TreeViewItem
의 IsSelected 속성이 양방향 바인딩을 통해 내 뷰 모델에 바인딩되어 있습니다. 하위 노드가 선택되면 해당 노드의 첫 번째 하위 노드가 클릭 된 하위 노드로 선택됩니다. TreeViewItem
이 내 프레젠테이션 모델에서 IsSelected 속성을 설정할 때 속성 변경 이벤트를 수신하지 않는 것 같습니다. 첫 번째 자식 노드가 선택되었지만 부모 노드는 선택을 취소하지 않습니다. 여기 내 프레젠테이션 모델의 코드가 있습니다.WPF TreeView 부모가 선택 될 때 첫 번째 자식을 선택하려는 경우
public bool IsSelected {
get {
return this._isSelected;
}
set {
if(this._isSelected != value) {
this._isSelected = value;
if(this.Nodes.Count > 0) {
this._isSelected = false;
this.Nodes[0].IsSelected = true;
}
this.NotifyPropertyChanged("IsSelected");
}
}
}
그리고 여기 내 TreeViewItem
의 스타일입니다 :
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
이렇게했습니다. treeviewitem 내에서 usercontrol을 선택할 때 awilinsk과 같은 문제가있었습니다. 사용자 정의 컨트롤은 수동으로 일부 요소에 초점을 맞추고 있으며 이중 선택 문제를 일으켰습니다. 고마워, 나는 그것에 너무 많은 시간을 보냈다. – kimphamg