【C#】ADO .Net Entities Framework在WPF TreeView中的应用
XAML代碼
<Window x:Class="WpfApplication73.MainWindow"
? ? ? ? xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
? ? ? ? xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
? ? ? ? xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
? ? ? ? xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
? ? ? ? xmlns:local="clr-namespace:WpfApplication73"
? ? ? ? mc:Ignorable="d"
? ? ? ? Title="MainWindow" Height="350" Width="525">
? ? <Grid>
? ? ? ? <TreeView ItemsSource="{Binding}">
? ? ? ? ? ? <TreeView.Resources>
? ? ? ? ? ? ? ? <HierarchicalDataTemplate DataType="{x:Type local:Class1}" ItemsSource="{Binding Races}">
? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? <TextBlock Text="{Binding Year}"/>
? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? </HierarchicalDataTemplate>
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? <HierarchicalDataTemplate DataType="{x:Type local:F1Race}" ItemsSource="{Binding Results}">
? ? ? ? ? ? ? ? ? ? <StackPanel Orientation="Horizontal">
? ? ? ? ? ? ? ? ? ? ? ? <TextBlock Text="{Binding Country}"/>
? ? ? ? ? ? ? ? ? ? ? ? <TextBlock Text="{Binding Date,StringFormat=d}"/>
? ? ? ? ? ? ? ? ? ? </StackPanel>
? ? ? ? ? ? ? ? </HierarchicalDataTemplate>
? ? ? ? ? ? ? ? <HierarchicalDataTemplate DataType="{x:Type local:F1RaceResult}">
? ? ? ? ? ? ? ? ? ? <StackPanel Orientation="Horizontal">
? ? ? ? ? ? ? ? ? ? ? ? <TextBlock Text="{Binding Position}"/>
? ? ? ? ? ? ? ? ? ? ? ? <TextBlock Text="{Binding Racer}"/>
? ? ? ? ? ? ? ? ? ? </StackPanel>
? ? ? ? ? ? ? ? </HierarchicalDataTemplate>
? ? ? ? ? ? </TreeView.Resources>
? ? ? ? </TreeView>
? ? </Grid>
</Window>
隱藏代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication73
{
? ? /// <summary>
? ? /// Interaction logic for MainWindow.xaml
? ? /// </summary>
? ? public partial class MainWindow : Window
? ? {
? ? ? ? public Formula1v2Entities data = new Formula1v2Entities();
? ? ? ? public MainWindow()
? ? ? ? {
? ? ? ? ? ? InitializeComponent();
? ? ? ? ? ? this.DataContext = Years;
? ? ? ? }
? ? ? ? public IEnumerable<Class1> Years
? ? ? ? {
? ? ? ? ? ? get
? ? ? ? ? ? {
? ? ? ? ? ? ? ? F1DataContext.Data = data;
? ? ? ? ? ? ? ? return data.Races.Select(r => new Class1
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? Year = r.Date.Year
? ? ? ? ? ? ? ? }).Distinct().OrderBy(c => c.Year).ToList();
? ? ? ? ? ? ? ? //return (from r in data.Races
? ? ? ? ? ? ? ? // ? ? ? ?select new Class1
? ? ? ? ? ? ? ? // ? ? ? ?{
? ? ? ? ? ? ? ? // ? ? ? ? ? Year= r.Date.Year
? ? ? ? ? ? ? ? // ? ? ? ?}).ToList();
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
Class1代碼,用來(lái)產(chǎn)生TreeView控件使用的集合
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WpfApplication73
{
? ? public static class F1DataContext
? ? {
? ? ? ? public static Formula1v2Entities Data { get; set; }
? ? }
? public class Class1
? ? { ? ? ??
? ? ? ? public int Year { get; set; }
? ? ? ? public IEnumerable<F1Race>Races
? ? ? ? {
? ? ? ? ? ? get
? ? ? ? ? ? {
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ?return (from r in F1DataContext.Data.Races
? ? ? ? ? ? ? ? ? ? ? ? ? ?where r.Date.Year == Year
? ? ? ? ? ? ? ? ? ? ? ? ? ?orderby r.Date
? ? ? ? ? ? ? ? ? ? ? ? ? ?select new F1Race
? ? ? ? ? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Date = r.Date,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Country = r.Circuits.Country
? ? ? ? ? ? ? ? ? ? ? ? ? ?}).ToList();
? ? ? ? ? ??
? ? ? ? ? ? ? ??
? ? ? ? ? ? }
? ? ? ? }
? ? ? ?
? ? ? ? }
? ?public class F1Race
? ? {
? ? ? ? public string Country { get; set; }
? ? ? ? public DateTime Date { get; set; }
? ? ? ? public IEnumerable<F1RaceResult> Results
? ? ? ? {
? ? ? ? ? ? get
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return (from rr in F1DataContext.Data.RaceResults
? ? ? ? ? ? ? ? ? ? ? ? where rr.Races.Date == this.Date
? ? ? ? ? ? ? ? ? ? ? ? select new F1RaceResult
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? Position = rr.Position,
? ? ? ? ? ? ? ? ? ? ? ? ? ? Racer = rr.Racers.FirstName + " " + rr.Racers.LastName
? ? ? ? ? ? ? ? ? ? ? ? }).ToList();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ?
? ? }
? ?public class F1RaceResult
? ? {
? ? ? ? public int Position { get; set; }
? ? ? ? public string Racer { get; set; }
? ? }
}
轉(zhuǎn)載于:https://blog.51cto.com/acadia627/1737994
總結(jié)
以上是生活随笔為你收集整理的【C#】ADO .Net Entities Framework在WPF TreeView中的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Mysql读书笔记
- 下一篇: CI框架 -- CLI执行php代码