C#ADO .Net Entities Framework在WPF TreeView中的应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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代码,用来产生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; }
}
}
以上是关于C#ADO .Net Entities Framework在WPF TreeView中的应用的主要内容,如果未能解决你的问题,请参考以下文章