2012-08-26 2 views
0

DB 클래스 propertys트 리뷰 HierarchicalDataTemplate 하우투 - WCF 리아 서비스 LoadOperation

[Serializable] 
[EnableClientAccess()] 
public class DbPersonelJobDetail 
{ 

    public DbPersonelJobDetail() 
    { 

    } 
    [Key] 
    public Guid PersonelID { get; set; } 
    public Guid JobID { get; set; } 
    public string JobName { get; set; } 
    public string Adi { get; set; } 
} 

DomainServices Linq는 쿼리

public IQueryable<DTO.DbPersonelJobDetail> GetPersonelJobTreeList() 
    { 
     IQueryable<DTO.DbPersonelJobDetail> result = from p in ObjectContext.SPA_PersonelJobDetail 
                join c in ObjectContext.SPA_PersonelJob on p.PersonelJobID equals c.ID 
                select new DTO.DbPersonelJobDetail() 
                { 
                 JobID=p.PersonelJobID, 
                 JobName = c.JobName, 
                 PersonelID=p.ID, 
                 Adi=p.Adi 
                }; 
     return result.AsQueryable(); 
    } 

BindTreeList의 methot

public void BindTreeList() 
    { 
     loadOP = context.Load(context.GetPersonelJobTreeListQuery(), false); 
     loadOP.Completed += loadOP_Completed; 
    } 

    void loadOP_Completed(object sender, EventArgs e) 
    { 
     treeListPersonel.ItemsSource = loadOP.Entities; 
    } 

내가 바인딩 BindTreeList의 트 리뷰 (해요) methot .

그림과 같이 다음과 같습니다. HierarchicalDataTemplate 아이템 소스 바인딩 하우투?

예를 들려주세요. 나는 당신의 아이디어를 기다리는

을 :(없습니다

...

Pucture

답변

0

로드 첫째 LAVEL 노드. HierarchicalDataTemplate에서 ItemsSource가

<riaControls:DomainDataSource x:Name="MyData" QueryName="GetFirstLavel" 
            AutoLoad="True" LoadSize="50"> 
      <riaControls:DomainDataSource.DomainContext> 
       <web:AdvDomainContext /> 
      </riaControls:DomainDataSource.DomainContext> 
     </riaControls:DomainDataSource> 

<sdk:TreeView ItemsSource="{Binding}" DataContext="{Binding ElementName=MyData, Path=Data}"> 
    <sdk:TreeView.ItemTemplate> 
     <sdk:HierarchicalDataTemplate 
     ItemsSource="{Binding Converter={StaticResource TreeViewCollectionConverter}}"> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding CODE}" /> 
       <TextBlock Text="{Binding DESC}" /> 
      </StackPanel> 
     </sdk:HierarchicalDataTemplate> 
    </sdk:TreeView.ItemTemplate> 
</sdk:TreeView> 

TreeViewCollectionConverter을 LoadChildsConverter에 결합. CS

public class TreeViewR5OBJECTCollectionConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     ObservableCollection<Node> nodeList = new ObservableCollection<Node>(); 
     if (value != null) 
     { 
      AdvDomainContext ctx = new AdvDomainContext(); 
      Node parentNode = (Node)value; 
      ctx.Load(ctx.GetChildsQuery(parentNode), iop => 
          { 
           foreach (var o in iop.Entities) 
            nodeList.Add(o); 
          }, null); 
     } 
     return nodeList; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return null; 
    } 
} 
AdvDomainService.cs 에서

public IQueryable<Node> GetFirstLavel() 

가 인 parentNode

의 차일을 반환하는 첫 번째 수준 노드 및
public IQueryable<Node> GetChilds(Node ParentNode) 

를 반환해야합니다