2011-01-25 56 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

那就是它的設計工作,所以只是感到高興:-)