DataGridComboBoxColumn 类

定义

表示一个 DataGrid 列,该列在其单元格中承载 ComboBox 控件。

public ref class DataGridComboBoxColumn : System::Windows::Controls::DataGridColumn
public class DataGridComboBoxColumn : System.Windows.Controls.DataGridColumn
type DataGridComboBoxColumn = class
    inherit DataGridColumn
Public Class DataGridComboBoxColumn
Inherits DataGridColumn
继承

示例

以下示例演示如何使用枚举值填充列中每个 ComboBox 列的下拉列表。 通过将 属性设置为 SelectedItemBinding 每行中显示的对象的 属性来绑定下拉列表中的选定项。

<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>
                <DataGridComboBoxColumn Header="Order Status"  SelectedItemBinding="{Binding Status}" ItemsSource="{Binding Source={StaticResource myEnum}}" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
    </NavigationWindow.Content>
</NavigationWindow>
public partial class Window1 : NavigationWindow
{
Class Window1
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;
}
Public Sub New()
    ' This call is required by the Windows Form Designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.

    'GetData() creates a collection of Customer data from a database
    Dim custdata As ObservableCollection(Of Customer) = GetData()

    'Bind the DataGrid to the customer data
    DG1.DataContext = custdata

End Sub
//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; }
}
'Defines the customer object
Public Class Customer
    Public Property FirstName() As String
    Public Property LastName() As String
    Public Property Email() As Uri
    Public Property IsMember() As Boolean
    Public Property Status() As OrderStatus
End Class
public enum OrderStatus { None, New, Processing, Shipped, Received };
Public Enum OrderStatus
    None
    [New]
    Processing
    Shipped
    Received
End Enum

注解

用于 DataGridComboBoxColumn 显示有一组可供选择的项(例如枚举)的数据。 DataGridComboBoxColumn 允许用户从下拉列表中选择项。 下图显示了一个 DataGridComboBoxColumn

DataGridComboBoxColumn

若要填充下拉列表,请先使用以下选项之一为 ComboBox 设置 ItemsSource 属性:

ItemsSource设置 后,将 中的ComboBox选定项绑定到单元格所属行的数据项。 可以使用以下属性之一设置绑定:

属性 说明
TextBinding 设置当前选定项的文本的绑定路径。
SelectedItemBinding 设置当前所选对象的绑定路径。
SelectedValueBinding 将绑定路径设置为由 SelectedValuePath 属性指定的选定项的值。

当 属性 IsReadOnly 设置为 true时,用户无法编辑列,并且他们将无法看到下拉列表。

如果要显示其他类型的数据, DataGrid 请提供以下列类型:

列类型 数据显示
DataGridHyperlinkColumn 使用 显示 URI 数据。
DataGridCheckBoxColumn 使用 显示布尔数据。
DataGridTextColumn 使用 显示文本。

如果要使用 中的其他 DataGrid控件,可以使用 创建自己的列类型 DataGridTemplateColumn

构造函数

DataGridComboBoxColumn()

初始化 DataGridComboBoxColumn 类的新实例。

字段

DisplayMemberPathProperty

标识 DisplayMemberPath 依赖项属性。

EditingElementStyleProperty

标识 EditingElementStyle 依赖项属性。

ElementStyleProperty

标识 ElementStyle 依赖项属性。

ItemsSourceProperty

标识 ItemsSource 依赖项属性。

SelectedValuePathProperty

标识 SelectedValuePath 依赖项属性。

属性

ActualWidth

获取列的当前宽度,以与设备无关的单位 (每单位) 1/96 英寸。

(继承自 DataGridColumn)
CanUserReorder

获取或设置一个值,该值指示用户能否通过拖放列标题来更改列的显示位置。

(继承自 DataGridColumn)
CanUserResize

获取或设置一个值,该值指示用户是否可使用鼠标调整列宽。

(继承自 DataGridColumn)
CanUserSort

获取或设置一个值,该值指示用户能否通过单击列标题对列进行排序。

(继承自 DataGridColumn)
CellStyle

获取或设置用于呈现列中单元格的样式。

(继承自 DataGridColumn)
ClipboardContentBinding

获取或设置要在获取或设置剪贴板的单元格内容时使用的绑定对象。

DataGridOwner

获取包含此列的 DataGrid 控件。

(继承自 DataGridColumn)
DefaultEditingElementStyle

获取 EditingElementStyle 属性的默认值。

DefaultElementStyle

获取 ElementStyle 的默认值。

DependencyObjectType

DependencyObjectType获取包装此实例的 CLR 类型的 。

(继承自 DependencyObject)
Dispatcher

获取与此 Dispatcher 关联的 DispatcherObject

(继承自 DispatcherObject)
DisplayIndex

获取或设置该列相对于 DataGrid 中其他列的显示位置。

(继承自 DataGridColumn)
DisplayMemberPath

获取或设置指向源对象上的值的路径以提供该对象的可视化表示形式。

DragIndicatorStyle

获取或设置要在拖动操作过程中应用于列标题的样式对象。

(继承自 DataGridColumn)
EditingElementStyle

获取或设置在呈现列为处于编辑模式的单元格显示的元素时使用的样式。

ElementStyle

获取或设置在呈现列为未处于编辑模式的单元格显示的元素时使用的样式。

Header

获取或设置列标题的内容。

(继承自 DataGridColumn)
HeaderStringFormat

获取或设置要应用于列标题的内容的格式模式。

(继承自 DataGridColumn)
HeaderStyle

获取或设置呈现列标题时使用的样式。

(继承自 DataGridColumn)
HeaderTemplate

获取或设置定义列标题的可视化表示形式的模板。

(继承自 DataGridColumn)
HeaderTemplateSelector

获取或设置选择要用于列标题的模板的对象。

(继承自 DataGridColumn)
IsAutoGenerated

获取一个值,该值指示是否自动生成列。

(继承自 DataGridColumn)
IsFrozen

获取一个值,该值指示是否阻止列水平滚动。

(继承自 DataGridColumn)
IsReadOnly

获取或设置一个值,该值指示能否编辑列中的单元格。

(继承自 DataGridColumn)
IsSealed

获取一个值,该值指示此实例当前是否为密封的(只读)。

(继承自 DependencyObject)
ItemsSource

获取或设置用于生成组合框控件的内容的集合。

MaxWidth

获取或设置列的最大宽度约束。

(继承自 DataGridColumn)
MinWidth

获取或设置列的最小宽度约束。

(继承自 DataGridColumn)
SelectedItemBinding

获取或设置当前选定项的绑定。

SelectedValueBinding

获取或设置通过使用 SelectedValuePath 而获得的选定项的值。

SelectedValuePath

获取或设置用于从 SelectedValue 获取 SelectedItem 的路径。

SortDirection

获取或设置列的排序方向(升序或降序)。

(继承自 DataGridColumn)
SortMemberPath

获取或设置属性名称或用句点分隔的属性名称层次结构,它指示作为排序依据的成员。

(继承自 DataGridColumn)
TextBinding

获取或设置 ComboBox 控件的文本框部分中文本的绑定。

TextBlockComboBoxStyleKey

获取样式的资源键以应用于只读组合框。

Visibility

获取或设置列的可见性。

(继承自 DataGridColumn)
Width

获取或设置列的宽度或自动调整大小模式。

(继承自 DataGridColumn)

方法

CancelCellEdit(FrameworkElement, Object)

导致正在编辑的列单元格恢复到指定的值。

CancelCellEdit(FrameworkElement, Object)

导致正在编辑的单元格还原为原始未编辑的值。

(继承自 DataGridColumn)
CheckAccess()

确定调用线程是否可以访问此 DispatcherObject

(继承自 DispatcherObject)
ClearValue(DependencyProperty)

清除属性的本地值。 要清除的属性由 DependencyProperty 标识符指定。

(继承自 DependencyObject)
ClearValue(DependencyPropertyKey)

清除只读属性的本地值。 要清除的属性由 DependencyPropertyKey 指定。

(继承自 DependencyObject)
CoerceValue(DependencyProperty)

对指定依赖属性的值进行强制。 通过对调用方 DependencyObject 上存在的依赖属性的属性元数据中所指定的任何 CoerceValueCallback 函数进行调用来完成此操作。

(继承自 DependencyObject)
CommitCellEdit(FrameworkElement)

在退出编辑模式之前执行任何必需的验证。

CommitCellEdit(FrameworkElement)

在退出单元格编辑模式之前执行任何必需的验证。

(继承自 DataGridColumn)
Equals(Object)

确定提供的 DependencyObject 是否等效于当前 DependencyObject

(继承自 DependencyObject)
GenerateEditingElement(DataGridCell, Object)

获取一个组合框控件,该控件绑定到列的 SelectedItemBindingSelectedValueBindingTextBinding 值。

GenerateElement(DataGridCell, Object)

获取一个只读组合框控件,该控件绑定到列的 SelectedItemBindingSelectedValueBindingTextBinding 值。

GetCellContent(DataGridRow)

对于此列与指定行相交处的单元格,检索 Content 属性值。

(继承自 DataGridColumn)
GetCellContent(Object)

对于位于此列与表示指定数据项的行相交位置的单元格,获取 Content 属性值。

(继承自 DataGridColumn)
GetHashCode()

获取此 DependencyObject 的哈希代码。

(继承自 DependencyObject)
GetLocalValueEnumerator()

创建一个专用的枚举数,用于确定哪些依赖项属性在此 DependencyObject 上具有以本地方式设置的值。

(继承自 DependencyObject)
GetType()

获取当前实例的 Type

(继承自 Object)
GetValue(DependencyProperty)

DependencyObject 的此实例返回依赖属性的当前有效值。

(继承自 DependencyObject)
InvalidateProperty(DependencyProperty)

重新评估指定依赖属性的有效值。

(继承自 DependencyObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
NotifyPropertyChanged(String)

通知包含此列的 DataGrid 有个列属性被更改了。

(继承自 DataGridColumn)
OnCoerceIsReadOnly(Boolean)

基于包含此列的 IsReadOnly 的属性规则,确定 DataGrid 属性的值。

OnCopyingCellClipboardContent(Object)

引发 CopyingCellClipboardContent 事件。

(继承自 DataGridColumn)
OnPastingCellClipboardContent(Object, Object)

引发 PastingCellClipboardContent 事件。

(继承自 DataGridColumn)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

每当更新此 DependencyObject 的任何依赖属性的有效值时调用。 更改的特定依赖属性将在事件数据中报告。

(继承自 DependencyObject)
OnSelectedItemBindingChanged(BindingBase, BindingBase)

DataGrid 属性值更改时通知 SelectedItemBinding

OnSelectedValueBindingChanged(BindingBase, BindingBase)

DataGrid 属性值更改时通知 SelectedValueBinding

OnTextBindingChanged(BindingBase, BindingBase)

DataGrid 属性值更改时通知 TextBinding

PrepareCellForEdit(FrameworkElement, RoutedEventArgs)

当列中的单元格进入编辑模式时调用。

ReadLocalValue(DependencyProperty)

如果存在,则返回依赖属性的本地值。

(继承自 DependencyObject)
RefreshCellContent(FrameworkElement, String)

刷新列中单元格的内容,以响应绑定更改。

SetCurrentValue(DependencyProperty, Object)

设置依赖属性的值而不更改其值源。

(继承自 DependencyObject)
SetValue(DependencyProperty, Object)

设置依赖属性的本地值,该值由其依赖属性标识符指定。

(继承自 DependencyObject)
SetValue(DependencyPropertyKey, Object)

设置一个只读依赖属性的本地值,该值由依赖属性的 DependencyPropertyKey 标识符指定。

(继承自 DependencyObject)
ShouldSerializeProperty(DependencyProperty)

返回一个值,该值指示序列化进程是否应序列化所提供的依赖属性的值。

(继承自 DependencyObject)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
VerifyAccess()

强制调用线程具有此 DispatcherObject 的访问权限。

(继承自 DispatcherObject)

事件

CopyingCellClipboardContent

在单元格剪贴板内容准备好之后发生。

(继承自 DataGridColumn)
PastingCellClipboardContent

在剪贴板内容传输到单元格之前发生。

(继承自 DataGridColumn)

适用于