TreeView가있는 SL 응용 프로그램을 빌드하려고합니다.Silverlight Control Toolkit 렌더링 항목이없는 TreeView
<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에
웹 서비스가 반환하는 정보를 더 게시 할 수 있습니까? –
WebDescriptor 클래스 정의를 추가했습니다. 이 서비스는 ServiceObjectParser 클래스에서 파싱되는 XML 데이터 (foreach 행 참고)를 반환합니다. 서비스 자체는 WebDescriptor 객체가 올바르게 생성되고 실제로 존재하는 한 실제로 중요하지 않습니다. –
약 5 번 내 대답을 편집해야했지만 시도해보십시오. 텍스트 블록을 존재하지 않는 속성에 바인딩하려는 것처럼 보입니다. –