Silverlight中GridView主从明细显示
结构图示:
Person.cs
using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Collections.Generic; namespace SilverlightApplication1 { public class Person { public int Personid { get; set; } public string PersonName { get; set; } public string DepartName { get; set; } public string City { get; set; } public string email { get; set; } public List<Person> GetPersons() { List<Person> allPersons = new List<Person>(); allPersons.Add( new Person { Personid = 1, PersonName = "Jon1", DepartName = "It", City = "Beijing", email = "Jon1@hotmail.com" } ); allPersons.Add( new Person { Personid = 2, PersonName = "Jon2", DepartName = "It", City = "Beijing", email = "Jon2@hotmail.com" } ); allPersons.Add( new Person { Personid = 3, PersonName = "Jon3", DepartName = "It", City = "Beijing", email = "Jon3@hotmail.com" } ); allPersons.Add( new Person { Personid = 4, PersonName = "Jon4", DepartName = "It", City = "Beijing", email = "Jon4@hotmail.com" } ); return allPersons; } } }
Views/Page1.xaml
<navigation:Page x:Class="SilverlightApplication1.Views.Page1" 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" mc:Ignorable="d" xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" d:DesignWidth="640" d:DesignHeight="480" Title="Page1 Page" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"> <Grid x:Name="LayoutRoot"> <data:DataGrid x:Name="dgperson" AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" RowDetailsVisibilityMode="VisibleWhenSelected" ScrollViewer.VerticalScrollBarVisibility="Auto" VerticalAlignment="Top" Width="360" Margin="12,12,0,0" > <data:DataGrid.Columns> <data:DataGridTextColumn Header="Personid" Binding="{Binding Personid}"/> <data:DataGridTextColumn Header="PersonName" Binding="{Binding PersonName}"/> </data:DataGrid.Columns> <data:DataGrid.RowDetailsTemplate> <DataTemplate> <Border BorderBrush="Black" BorderThickness="1" Background="White"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.2*" /> <ColumnDefinition Width="0.8*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <TextBlock Text="DepartName:" Grid.Column="0" Grid.Row="0" /> <TextBlock Text="{Binding DepartName}" Grid.Column="1" Grid.Row="0" /> <TextBlock Text="City : " Grid.Column="0" Grid.Row="1" /> <TextBlock Text="{Binding City}" Grid.Column="1" Grid.Row="1" /> <TextBlock Text="email : " Grid.Column="0" Grid.Row="2" /> <TextBlock Text="{Binding email}" Grid.Column="1" Grid.Row="2" /> </Grid> </Border> </DataTemplate> </data:DataGrid.RowDetailsTemplate> </data:DataGrid> </Grid> </navigation:Page>
Views/Page1.xaml.cs
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Windows.Navigation; namespace SilverlightApplication1.Views { public partial class Page1 : Page { public Page1() { InitializeComponent(); Person ps = new Person(); this.dgperson.ItemsSource = ps.GetPersons(); } // 当用户导航到此页面时执行。 protected override void OnNavigatedTo(NavigationEventArgs e) { } } }
运行效果图:



浙公网安备 33010602011771号