2011-01-25 16 views
1

我正在一个项目,我需要提供一些treeviews给用户。到目前为止,我已经设法让我的业务对象和持久性到数据库完全正常运行。在WPF TreeView和惰性加载数据绑定所需的建议与NHibernate

我使用NHibernate与SQLite3来存储对象。业务对象如下:

public class ErrorObject 
{ 
    public virtual int ID { get; set; } 
    public virtual string Description { get; set; } 

    private IList<ErrorObject> _errorObjects = new List<ErrorObject>(); 
    public virtual IList<ErrorObject> ErrorObjects 
    { 
     get { return _errorObjects; } 
     set { _errorObjects = value; } 
    } 
} 

我结合这一个TreeView这样的:

<TreeView ItemsSource="{Binding ErrorObjects}"> 
    <TreeView.ItemTemplate> 
     <HierarchicalDataTemplate DataType="{x:Type DataModel:ErrorObject}" 
            ItemsSource="{Binding ErrorObjects}"> 
      <TextBlock Text="{Binding Path=Description}" /> 
     </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

令我百思不解的是一个事实,即,只要我不关闭NHibernate的会议上,我有充分的延迟加载外的开箱:O)

可以的,如果这是继续一路人的意见?或者我有一个有缺陷的概念?

回答

0

似乎是一个很好的概念。

在NET 3.5 SP1的虚拟化支持已被添加到树视图(通过添加对分层数据到VirtualizingStackPanel支持)。

只要NHibernate的填充子列表ErrorObjects当它被要求(首次访问吸气)树应建立与延迟加载。

0

那就是它的设计工作,所以只是感到高兴:-)