如何使用MVVM在樹視圖中展開節點?如何使用MVVM在Silverlight工具包樹視圖中展開一個節點?
我有一個x級別的treeview,我做了我自己的類來將它綁定到TreeView控件。
當我創建TreeView
列表時,我確實設法將IsSelected
屬性設置爲true
。 所以我只需要我的IsSelected
值綁定到TreeViewItem
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)。
我看了很多解決方案,但沒有爲我工作,因爲我有一個列表框和每個樹視圖中的動態樹視圖,我必須將整個路徑展開到具有給定Id
的節點。例如,我想要展開每個樹視圖中ID = 30的所有節點。
的Silverlight 5將配備風格制定者,我希望能解決我的問題,現在我只使用一個轉換器,並設置有IsSelected該節點在彩色背景並展開整個樹視圖,然後用戶必須找到節點... – Rumplin