<Window x:Class="Listview.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="768" Width="1024" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
<Window.Resources>
<Style TargetType="Button" x:Key="ButtonStyle">
<Setter Property="Foreground" Value="Black"></Setter>
<Setter Property="BorderThickness" Value="1" />
</Style>
</Window.Resources>
<Grid>
<StackPanel x:Name="ListPageNum" Margin="0" Height="auto" VerticalAlignment="Top" Orientation="Horizontal"></StackPanel>
<Button HorizontalAlignment="Left" Margin="31,30.139,0,0" VerticalAlignment="Top" Width="86" Height="27" Content="Button" Click="btnadd_Click"/>
<Grid x:Name="ListviewText" Margin="31,70.667,476,0" Height="213" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="47.047,290.39,0,0" VerticalAlignment="Top" Width="Auto" Height="Auto" TextWrapping="Wrap" d:LayoutOverrides="Height"><Run Language="zh-cn" Text="开始时间"/></TextBlock>
<TextBlock HorizontalAlignment="Left" Margin="114.047,290.39,0,0" x:Name="TextBlockstarttime" VerticalAlignment="Top" Width="Auto" Height="Auto" Text="TextBlock" TextWrapping="Wrap" d:LayoutOverrides="Height"/>
<TextBlock Margin="286.983,290.39,0,0" VerticalAlignment="Top" Width="73.063" Height="Auto" TextWrapping="Wrap" Text="结束时间" d:LayoutOverrides="Height" HorizontalAlignment="Left"/>
<TextBlock Margin="372.047,290.39,480.063,0" x:Name="TextBlockendtime" VerticalAlignment="Top" Height="Auto" Text="TextBlock" TextWrapping="Wrap" d:LayoutOverrides="Height"/>
<Grid x:Name="myStackPanel" Margin="31,330,476,155"/>
<TextBlock HorizontalAlignment="Left" Margin="47.047,0,0,39.755" Width="Auto" Height="Auto" TextWrapping="Wrap" d:LayoutOverrides="Height" VerticalAlignment="Bottom"><Run Language="zh-cn" Text="开始时间"/></TextBlock>
<TextBlock HorizontalAlignment="Left" Margin="114.047,0,0,39.755" x:Name="TextBlockstarttime2" Width="Auto" Height="Auto" Text="TextBlock" TextWrapping="Wrap" d:LayoutOverrides="Height" VerticalAlignment="Bottom"/>
<TextBlock Margin="286.983,0,0,39.755" Width="73.063" Height="Auto" TextWrapping="Wrap" Text="结束时间" HorizontalAlignment="Left" d:LayoutOverrides="Height" VerticalAlignment="Bottom"/>
<TextBlock Margin="372.047,0,456.928,39.755" x:Name="TextBlockendtime2" Height="13.687" Text="TextBlock" TextWrapping="Wrap" VerticalAlignment="Bottom"/>
</Grid>
</Window>
AXML.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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;
using System.Collections.ObjectModel;
namespace Listview
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void btnadd_Click(object sender, RoutedEventArgs e)
{
ListView ListView = new ListView();
string starttime = DateTime.Now.ToString();
for (int i = 0; i < 10000; i++)
{
TextBlock label = new TextBlock();
label.Text = "第" + i + "个 ListItem";
if (i < 11)
{
Button bt = new Button();
bt.Click += new RoutedEventHandler(btClick);
bt.Width = 20;
bt.Content = i.ToString();
this.ListPageNum.Children.Add(bt);
}
ListView.Items.Add(label);
}
this.ListviewText.Children.Add(ListView);
string endtime = DateTime.Now.ToString();
this.TextBlockstarttime.Text = starttime;
this.TextBlockendtime.Text = endtime;
this.TextBlockstarttime2.Text = endtime;
OnLoad(null, null);
string endtime2 = DateTime.Now.ToString();
this.TextBlockendtime2.Text = endtime2;
}
private void btClick(object sender, RoutedEventArgs e)
{
MessageBox.Show(((Button)sender).Content.ToString());
}
private void OnLoad(object sender, RoutedEventArgs e)
{
ListView myListView = new ListView();
GridView myGridView = new GridView();
myGridView.AllowsColumnReorder = true;
myGridView.ColumnHeaderToolTip = "Employee Information";
GridViewColumn gvc1 = new GridViewColumn();
gvc1.DisplayMemberBinding = new Binding("FirstName");
gvc1.Header = "姓";
gvc1.Width = 100;
myGridView.Columns.Add(gvc1);
GridViewColumn gvc2 = new GridViewColumn();
gvc2.DisplayMemberBinding = new Binding("LastName");
gvc2.Header = "名字";
gvc2.Width = 100;
myGridView.Columns.Add(gvc2);
GridViewColumn gvc3 = new GridViewColumn();
gvc3.DisplayMemberBinding = new Binding("EmployeeNumber");
gvc3.Header = "工号";
gvc3.Width = 100;
myGridView.Columns.Add(gvc3);
myListView.ItemsSource = new myEmployees();
myListView.View = myGridView;
myStackPanel.Children.Add(myListView);
}
}
public class EmployeeInfo
{
private string _firstName;
private string _lastName;
private string _employeeNumber;
public string FirstName
{
get { return _firstName; }
set { _firstName = value; }
}
public string LastName
{
get { return _lastName; }
set { _lastName = value; }
}
public string EmployeeNumber
{
get { return _employeeNumber; }
set { _employeeNumber = value; }
}
public EmployeeInfo(string firstname, string lastname, string empnumber)
{
_firstName = firstname;
_lastName = lastname;
_employeeNumber = empnumber;
}
}
public class myEmployees :
ObservableCollection<EmployeeInfo>
{
public myEmployees()
{
for (int i = 0; i < 1000000; i++)
{
Add(new EmployeeInfo("Jesper", "Aaberg", i.ToString()));
Add(new EmployeeInfo("Dominik", "Paiha", "98765"));
Add(new EmployeeInfo("Yale", "Li", "23875"));
Add(new EmployeeInfo("Muru", "Subramani", "49392"));
}
}
}
}