2009-04-24 12 views
0

をレンダリングしません。Silverlightコントロールツールキットツリービューは、私はそれでツリービューでSLアプリを構築しようとしているアイテム

<UserControl xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit" 
      xmlns:tkwin="clr-namespace:System.Windows;assembly=System.Windows.Controls.Toolkit" 
      xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"    
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    x:Class="SL.MyApp.Page" 
    Width="800" Height="600"> 
    <controls:DockPanel>   
     <controls:TreeView Name="siteTree" controls:DockPanel.Dock="Left" Width="150"> 
      <controls:TreeView.ItemTemplate> 
       <tkwin:HierarchicalDataTemplate ItemsSource="{Binding Children}"> 
        <StackPanel Orientation="Horizontal">       
         <TextBlock Text="{Binding Name}"/> 
        </StackPanel> 
       </tkwin:HierarchicalDataTemplate> 
      </controls:TreeView.ItemTemplate> 
     </controls:TreeView> 
     <basics:TabControl controls:DockPanel.Dock="Right" TabStripPlacement="Top"> 
      <basics:TabItem Header="Sites"></basics:TabItem> 
      <basics:TabItem Header="Lists"></basics:TabItem> 
      <basics:TabItem Header="Users"></basics:TabItem> 
     </basics:TabControl>  
    </controls:DockPanel> 
</UserControl> 

し、関連する分離コード:

namespace SL.MyApp 
{ 
    public partial class Page : UserControl 
    { 
     private ObservableCollection<WebDescriptor> _webHierarchy = new ObservableCollection<WebDescriptor>(); 

     public Page(WebsSvc.WebsSoapClient websClient) 
     {   
      InitializeComponent(); 

      siteTree.ItemsSource = _webHierarchy; 

      websClient.GetWebCollectionCompleted 
       += new EventHandler<SL.SiteBuilder.WebsSvc.GetWebCollectionCompletedEventArgs>(websClient_GetWebCollectionCompleted); 
      websClient.GetWebCollectionAsync(); 

      // TODO: some kind of spinner or progress bar needs to be started. 
     } 

     void websClient_GetWebCollectionCompleted(object sender, SL.SiteBuilder.WebsSvc.GetWebCollectionCompletedEventArgs e) 
     { 
      foreach (XElement xe in e.Result.Elements()) 
      { 
       _webHierarchy.Add(ServiceObjectParser<WebDescriptor>.Parse(xe)); 
      } 
     }  
    } 
} 

アップデート:ここに私のXAMLですWebDescriptorクラス:

public class WebDescriptor 
{ 
    public string Title { get; set; } 
    public string Url { get; set; } 
    public List<WebDescriptor> Children { get; set; } 
} 

私の問題は何も全くツリービューでレンダリングしていないということです。 websClient_GetWebCollectionCompletedで得られた結果が有効で正しいことを確認しましたが、何もありません。

アイデア?

websClient_GetWebCollectionCompletedで
+0

Webサービスの返品に関する詳細情報を投稿できますか? –

+0

私はWebDescriptorクラス定義を追加しました。このサービスはServiceObjectParserクラスによって解析されるXMLデータ(foreach行に注意)を返します。 WebDescriptorオブジェクトが正しく作成されている限り、サービス自体は実際には重要ではありません。 –

+0

私は約5回私の答えを編集しなければならなかったが、それらを試してください。存在しないプロパティにテキストブロックをバインドしようとしているようです。 –

答えて

0

{タイトルをバインド}するためにツリービュー内のTextBlockに結合変更、私は最終的に私が代わりにプロパティのフィールドにバインドしようとしていたが実現。

Doh!

0

siteTree.ItemsSource = _webHierarchy。また

、あなたが結合トレース出力を見た後

関連する問題