私は Visual Studio (2010) と Expression Studio (4) の初心者です。
Visual Studio で (Silverlight ビジネス アプリケーションを使用して) 接続した .mdb データベースに TreeView を接続して、各テーブルの名前プロパティのナビゲーション ツリーを表示しようとしています。私は2レベルの階層を持っています:
(表示されている以外にも多くのプロパティがありますが、必須のプロパティはこれらだけです)
- ルート レベル:ロケーション テーブル[LocationName プロパティ]
- 第 1 レベル:エリア テーブル[AreaName プロパティ] [LocationID]
- 第 2 レベル:検査表 [InspectionName プロパティ] [AreaID]
接続するために多くの方法を試しましたが、どれもうまくいかないようです.Expression Blendで作成された階層的なサンプルデータへの接続を備えたTreeViewテンプレートを作成できて、とても満足しています. 残念ながら、実際のデータベースの最上位レベルにしか接続できないようです。そのため、場所の名前のみが表示され、それ以上展開されません。
どうすればいいのかわかりません。私が使用しているコードは次のとおりです:(コードビハインドなし)
ホーム.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 に入れる必要がありますか?
- その場合、ロケーション名、子エリア名、および子検査名のリストを返すクエリをどのように入力すればよいですか?
前もって感謝します。