如何使用 MVVM 在树视图中展开节点?
我有斧头级树视图,我创建了自己的类来将它绑定到 TreeView 控件。
当我创建列表时,我确实设法将IsSelected
属性设置为。所以我只需要将我的值绑定到属性上,但这根本不是那么简单......true
TreeView
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
我用and试过了IsExpanded
:
<controls:TreeView.ItemContainerStyle>
<Style TargetType="controls:TreeViewItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
</Style>
</controls:TreeView.ItemContainerStyle>
但它返回,IsSelected
并且IsExpanded
是只读的(这在 WPF 中有效)。
我已经为此寻找了很多解决方案,但没有一个对我有用,因为我在列表框中有动态树视图,并且在每个树视图中,我必须将整个路径扩展到具有给定Id
. 例如,我想在每个树视图中展开所有 Id = 30 的节点。