我是 Visual Studio (2010) 和 Expression Studio (4) 的新手。
我一直在尝试让 TreeView 连接到我在 Visual Studio 中连接的 .mdb 数据库(使用 Silverlight 业务应用程序),以显示每个表中名称属性的导航树。我有 2 个层次结构:
(有比显示更多的属性,但这些是唯一需要的)
- 根级别:位置表[LocationName 属性]
- 第一级:面积表[AreaName 属性] [LocationID]
- 第二级:检查表 [InspectionName 属性] [AreaID]
我尝试了许多连接方式,但似乎都没有效果 - 现在我很高兴制作一个 TreeView 模板,该模板连接到在 Expression Blend 中创建的分层样本数据。不幸的是,我似乎只能与我的真实数据库的顶层建立连接——所以它只显示位置的名称,不会进一步扩展。
我不知道该怎么做。我正在使用的代码是:(没有代码隐藏)
主页.xaml
<riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my1:Location, CreateList=true}" Height="0" LoadedData="locationDomainDataSource_LoadedData_1" Name="locationDomainDataSource" QueryName="GetLocationsQuery" Width="0">
<riaControls:DomainDataSource.DomainContext>
<my:InspectDomainContext />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
<sdk:TreeView Height="200" ItemsSource="{Binding ElementName=locationDomainDataSource, Path=Data}" Name="locationTreeView1" Width="200" >
<sdk:TreeView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="NavigationTreeResourceDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</sdk:TreeView.Resources>
<sdk:TreeView.ItemTemplate>
<StaticResource ResourceKey="RootLevel"/>
</sdk:TreeView.ItemTemplate>
</sdk:TreeView>
导航树资源字典
<common:HierarchicalDataTemplate x:Key="Level2">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="5,0,3,0"
FontStyle="Italic"
Text="{Binding Path=Name}" />
</StackPanel>
</common:HierarchicalDataTemplate>
<common:HierarchicalDataTemplate x:Key="Level1"
ItemsSource="{Binding Path=Inspections}"
ItemTemplate="{StaticResource Level2}">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="5,0,3,0"
Text="{Binding Path=Name}" />
</StackPanel>
</common:HierarchicalDataTemplate>
<common:HierarchicalDataTemplate x:Key="RootLevel"
ItemsSource="{Binding Path=Areas}"
ItemTemplate="{StaticResource Level1}">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="5,0,3,0"
Text="{Binding Path=Name}"
FontWeight="Bold" FontSize="12" />
</StackPanel>
</common:HierarchicalDataTemplate>
域服务 (c#) GetLocationsQuery
public IQueryable<Location> GetLocations()
{
return this.ObjectContext.Locations.OrderBy(l=>l.Name);
}
这可能与使用的查询有关吗?我应该将树视图所需的信息放在 GetLocationsQuery 中吗?
- 如果是这样,我如何输入查询以返回位置名称、子区域名称和子检查名称的列表?
先感谢您。