This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

DataGrid الفئة

Visual Studio 2010

يمثل عنصر تحكم يعرض بيانات في شبكة قابلة لتخصيص.

مساحة الاسم:  System.Windows.Controls
التجميع:  PresentationFramework (في PresentationFramework.dll)
XMLNS لـ XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public class DataGrid : MultiSelector
<DataGrid>
  Items
</DataGrid>

استخدام DataGridعنصر تحكم لعرض بيانات في شبكة من صفوف والأعمدة. قم بتحديد بيانات المصدر بتعيين ItemsSourceخاصية مباشرة أو بالربط. لمزيد من المعلومات، راجع ربط البيانات. بشكل افتراضي، DataGridسيتم تلقائياً توليد أعمدة استناداً إلى مصدر بيانات. يسرد الجدول التالي أنواع أعمدة التي تم إنشاؤها.

نوع العمود الذي تم إنشائه

نوع البيانات

DataGridTextColumn

String

DataGridCheckBoxColumn

Boolean

DataGridComboBoxColumn

Enum

DataGridHyperlinkColumn

Uri

يبين المثال التالي كل نوع من أنواع الأعمدة.

شبكة بيانات بها الأنواع الأربعة الافتراضية كافة للأعمدة

يمكنك إيقاف تشغيل تلقائي-إنشاء الأعمدة بواسطة تعيين AutoGenerateColumnsخاصية إلى false. ثم يمكنك إنشاء الخاصة بك التعيين من Columnsباستخدام عمود موجود أنواع أو يمكنك إنشاء نوع عمود جديد مع DataGridTemplateColumn. كل عمود تم تعريفه في Columnsإنشاء مجموعة في عمود DataGrid.

DataGrid يدعم العديد من الطرق إلى cusإلىmize عرض بيانات. يسرد الجدول التالي وحدات السيناريو عام.

السيناريو

طريقة

ألوان خلفية تبادلية

التعيين AlternationIndexخاصية إلى 2 أو أكثر، ثم قم بتعيين BrushRowBackgroundو AlternatingRowBackgroundالخصائص.

تعريف سلوك تحديد الخلية و الصف

قم بتعيين الخاصيتين SelectionMode و SelectionUnit.

تخصيص المظهر المرئي للرؤوس و الخلايا و الصفوف

يطبق a جديدStyleإلى theColumnHeaderStyle,RowHeaderStyle,CellStyle, أوRowStyleخصائص.

الوصول إلى العناصر المحددة

تحقق SelectedCellsالخاصية إلى الحصول على خلايا المحددة وفحص SelectedItemsالخاصية إلى على صفوف المحددة. لمزيد من المعلومات، انظر الخاصية SelectedCells.

تخصيص تفاعل المستخدم النهائي

قم بتعيينCanUserAddRows و CanUserDeleteRows, وCanUserReorderColumnsو CanUserResizeColumnsو CanUserResizeRowsو CanUserSortColumnsخصائص.

إلغاء أو تغيير الأعمدة التي تم إنشاؤها تلقائيًا

معالجة AutoGeneratingColumn الحدث.

تجميد عمود

تعيين FrozenColumnCountخاصية 1 ونقل عمود إلى الموضع أقصى اليمين بتعيين DisplayIndexخاصية إلى 0.

بيانات استخدم XML كمصدر بيانات

يربط ItemsSourceتشغيل DataGridإلى استعلام XPath الذي يمثل المجموعة من عناصر. قم بإنشاء كل عمود في DataGrid. قم بربط كل عمود بواسطة تعيين XPath تشغيل الرابط إلى الاستعلام الذي يحصل تشغيل خاصية تشغيل العنصر المصدر. على سبيل المثال ، راجع DataGridTextColumn.

يظهر المثال التالي كيفية يربط DataGridإلى DataTableواستخدام عمود تلقائية-الجيل. DataTable تم تعبئته باستخدام Fillأسلوب DataAdapterمن DataSet. للمزيد من المعلومات، راجع Creating a DataSet (ADO.NET) وPopulating a DataSet from a DataAdapter (ADO.NET). إلى استخدم theمصمم WPF لـ Visual Studio, seeكيفية القيام بما يلي: عناصر تحكم WPF يربط للبيانات في ‏‫Visual Studio.


<DataGrid x:Name="CustomerGrid" ItemsSource="{Binding}" AlternatingRowBackground="LightBlue" AlternationCount="2" />



//Set the DataGrid's DataContext to be a filled DataTable
CustomerGrid.DataContext = custDataTable;


يوضح المثال التالي كيف إلى إنشاء DataGridمع cusإلىmized Columnsمجموعة.


    <NavigationWindow x:Class="DataGrid_CustomColumns.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:core="clr-namespace:System;assembly=mscorlib"
        xmlns:local="clr-namespace:DataGrid_CustomColumns"
        Title="Customers" Height="300" Width="300" ShowsNavigationUI="False"  >

    <NavigationWindow.Resources>
        <!--Create list of enumeration values-->
        <ObjectDataProvider x:Key="myEnum" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type Type="local:OrderStatus"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
        <!--Create an instance of the converter for Email-->
        <local:EmailConverter x:Key="EmailConverter" />
    </NavigationWindow.Resources>
    <NavigationWindow.Content>  

    <Grid>
        <DataGrid Name="DG1" ItemsSource="{Binding}" AutoGenerateColumns="False" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="First Name"  Binding="{Binding FirstName}"/>
                <DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
                <!--The Email property contains a URI.  For example "mailto:lucy0@adventure-works.com"-->
                <DataGridHyperlinkColumn Header="Email" Binding="{Binding Email}"  ContentBinding="{Binding Email, Converter={StaticResource EmailConverter}}" />
                <DataGridCheckBoxColumn Header="Member?" Binding="{Binding IsMember}" />
                <DataGridComboBoxColumn Header="Order Status"  SelectedItemBinding="{Binding Status}" ItemsSource="{Binding Source={StaticResource myEnum}}" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
    </NavigationWindow.Content>
</NavigationWindow>



//Additional using statements
using System.Data;
using System.Collections.ObjectModel;
using System.Diagnostics;


...


public partial class Window1 : NavigationWindow
{


...


public Window1()
{
    InitializeComponent();

    //GetData() creates a collection of Customer data from a database
    ObservableCollection<Customer> custdata = GetData();

    //Bind the DataGrid to the customer data
    DG1.DataContext = custdata;

}


...


//Defines the customer object
public class Customer
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public Uri Email { get; set; }
    public bool IsMember { get; set; }
    public OrderStatus Status { get; set; }

}


...


}


...


public enum OrderStatus { None, New, Processing, Shipped, Received };


...


//Converts the mailto uri to a string with just the customer alias
public class EmailConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value != null)
        {
            string email = value.ToString();
            int index = email.IndexOf("@");
            string alias = email.Substring(7, index-7);
            return alias;
        }
        else
        {
            string email = "";
            return email;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        Uri email = new Uri((string)value);
        return email;
    }
}


System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Media.Visual
        System.Windows.UIElement
          System.Windows.FrameworkElement
            System.Windows.Controls.Control
              System.Windows.Controls.ItemsControl
                System.Windows.Controls.Primitives.Selector
                  System.Windows.Controls.Primitives.MultiSelector
                    System.Windows.Controls.DataGrid

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008, نظام التشغيل Windows Server 2003

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4

NET Framework. Client Profile

مدعوم في: 4
إظهار: