





















<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<Binding Source="{StaticResource DGDataTemplate}"/>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
<Window x:Class="WpfApp3.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:WpfApp3" mc:Ignorable="d" Title="MainWindow" WindowState="Maximized"> <Window.DataContext> <local:MainVM/> </Window.DataContext> <Window.Resources> <DataTemplate DataType="{x:Type local:Book}" x:Key="DGDataTemplate"> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Id}" Margin="10,0"/> <TextBlock Text="{Binding Name}" Margin="10,0"/> <TextBlock Text="{Binding ISBN}" Margin="10,0"/> <TextBlock Text="{Binding Comment}" Margin="10,0"/> <TextBlock Text="{Binding Content}" Margin="10,0"/> </StackPanel> </DataTemplate> <ControlTemplate TargetType="ContentControl" x:Key="DGControlTemplate"> <DataGrid ItemsSource="{Binding Books}" AutoGenerateColumns="False" CanUserReorderColumns="False" FontSize="30"> <DataGrid.Columns> <DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <Binding Source="{StaticResource DGDataTemplate}"/> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </ControlTemplate> </Window.Resources> <Grid> <ContentControl Template="{StaticResource DGControlTemplate}"/> </Grid> </Window> using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; 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; namespace WpfApp3 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } public class MainVM : INotifyPropertyChanged { public MainVM() { Books = new ObservableCollection<Book>(); for(int i=1;i<10001;i++) { Books.Add(new Book() { Id=i, Name=$"Name_{i}", ISBN=$"ISBN_{i}_{Guid.NewGuid():N}", Comment=$"Comment_{i}", Content=$"Content_{i}" }); } } private ObservableCollection<Book> books; public ObservableCollection<Book> Books { get { return books; } set { if(value!=books) { books = value; OnPropertyChanged(); } } } public event PropertyChangedEventHandler? PropertyChanged; private void OnPropertyChanged([CallerMemberName]string propertyName="") { var handler=PropertyChanged; if(handler!=null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } } public class Book { public int Id { get; set; } public string Name { get; set; } public string ISBN { get; set; } public string Comment { get; set; } public string Content { get; set; } } }

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。