我在使用MVVM设计模式在WPF中使用TreeView时遇到一个问题。我找到了一个帮助我理解主体的解决方案,但是当我在项目中应用它时,我无法获得所需的结果。这篇文章是this one。
我的基类是:
public class ClientTreeViewProducts
{
public List<ClientTreeViewProducts> Items { get; set; }
public string Name { get; set; }
}
在ViewModel中,我有一个公共属性,它绑定到TreeView的ItemsSource
属性:
private List<ClientTreeViewProducts> _treeViewSource;
public List<ClientTreeViewProducts> TreeViewSource
{
get { return _treeViewSource; }
set
{
if(_treeViewSource!=value)
{
_treeViewSource = value;
RaisePropertyChanged("TreeViewSource");
}
}
}
我有一个填充List
的函数,似乎没问题。
最后,我的xaml管理绑定和HierarchicalDataTemplate
:
<TreeView ItemsSource="{Binding TreeViewSource}">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="True"/>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type helpers:ClientTreeViewProducts}"
ItemsSource="{Binding Items}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
问题是当我在TreeViewSource
属性中填充一些数据时,树视图保持为空(视觉上)。有人可以找到问题所在,因为我对这个问题持续了3天。
提前谢谢!