C# Silverlight和Caliburn Micro的TreeView数据绑定问题
我使用Silverlight和Caliburn Micro时遇到了一个问题,无法让子节点出现在树中。树状视图以网格形式显示,下面是我的XAML摘录:C# Silverlight和Caliburn Micro的TreeView数据绑定问题,c#,.net,data-binding,treeview,caliburn.micro,C#,.net,Data Binding,Treeview,Caliburn.micro,我使用Silverlight和Caliburn Micro时遇到了一个问题,无法让子节点出现在树中。树状视图以网格形式显示,下面是我的XAML摘录: <Grid.Resources> <sdk:HierarchicalDataTemplate x:Key="AccountTemplate"> <TextBlock Text="{Binding AccountNumber}" /> </sdk:HierarchicalDat
<Grid.Resources>
<sdk:HierarchicalDataTemplate x:Key="AccountTemplate">
<TextBlock Text="{Binding AccountNumber}" />
</sdk:HierarchicalDataTemplate>
<sdk:HierarchicalDataTemplate x:Key="CategoryTemplate"
ItemsSource="{Binding CategoryServices}"
ItemTemplate="{StaticResource AccountTemplate}">
<TextBlock Text="{Binding Path=CategoryName}" FontWeight="Bold" />
</sdk:HierarchicalDataTemplate>
</Grid.Resources>
<Controls:TreeView Grid.Row="1" Grid.Column="0"
ItemsSource="{Binding FromAddressServices}"
ItemTemplate="{StaticResource CategoryTemplate}" x:Name="FromTreeView" />
绑定的类包括:
public class AccountAtAddress
{
public string AccountNumber { get; set; }
}
public class ServiceCategory
{
public string CategoryName { get; set; }
public ObservableCollection<AccountAtAddress> CategoryServices;
}
公共类帐户地址
{
公共字符串AccountNumber{get;set;}
}
公共类服务类别
{
公共字符串CategoryName{get;set;}
公共可观测收集类别服务;
}
我的问题是,第一级项目显示但没有子项。有没有人对如何实现这一点有想法?请尝试以下方法:
<Grid.Resources>
<sdk:HierarchicalDataTemplate DataType="AccountAtAddress">
<TextBlock Text="{Binding AccountNumber}" />
</sdk:HierarchicalDataTemplate>
<sdk:HierarchicalDataTemplate DataType="ServiceCategory"
ItemsSource="{Binding CategoryServices}">
<TextBlock Text="{Binding Path=CategoryName}" FontWeight="Bold" />
</sdk:HierarchicalDataTemplate>
</Grid.Resources>
您需要将CategoryServices设置为公共属性。您已将其定义为公共字段,而数据绑定机制不适用于字段。我收到一个错误,说明在HierarchycalDataTemplate中找不到数据类型谢谢-这一点点信息让我不知所措!我会记住的。