MVVM을 사용하여 트리 뷰에서 노드를 확장하는 방법은 무엇입니까?MVVM을 사용하여 Silverlight 툴킷 트리 뷰에서 하나의 노드를 확장하는 방법은 무엇입니까?
x 레벨의 treeview가 있고 TreeView 컨트롤에 바인딩하기 위해 고유 한 클래스를 만들었습니다.
TreeView
목록을 만들 때 IsSelected
속성을 true
으로 설정할 수있었습니다. 그래서 여기
TreeViewItem
IsSelected
속성에 내
IsSelected
값을 바인드 할 필요가 있지만,이 모든 것을 간단하지 : 나는 시도
public class HierarchicalItem : Model
{
public string Name { get; set; }
public int Id { get; set; }
private bool _IsSelected;
public bool IsSelected
{
get { return _IsSelected; }
set
{
if (_IsSelected != value)
{
_IsSelected = value;
RaisePropertyChanged("IsSelected");
}
}
}
private ObservableCollection<HierarchicalItem> _children;
public ObservableCollection<HierarchicalItem> Children
{
get
{
return _children;
}
set
{
if (_children != value)
{
_children = value;
RaisePropertyChanged("Children");
}
}
}
}
그 IsSelected
및 IsExpanded
과 :
<controls:TreeView.ItemContainerStyle>
<Style TargetType="controls:TreeViewItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
</Style>
</controls:TreeView.ItemContainerStyle>
그러나 IsSelected
및 IsExpanded
가 (이 WPF에서 작동) 읽기 전용 있음을 반환합니다.
나는 많은 트릭을 보았지만 목록 상자와 각각의 treeviews에 동적 노드 뷰가 있기 때문에 노드 전체 경로를 주어진 Id
으로 확장해야하므로 아무 것도 작동하지 않는다. 예를 들어, 각 트리 뷰에서 Id = 30 인 모든 노드를 확장하려고합니다.
실버 라이트 5, 지금 난 그냥 변환기를 사용에 isSelected을 가지고 해당 노드에 컬러 배경을 설정하기위한 즉, 내 문제를 해결 희망 전체 트리보기를 확장하면 사용자는 노드를 찾아야합니다. – Rumplin