DataGridComboBoxColumn 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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。
若要填充下拉列表,请先使用以下选项之一为 ComboBox 设置 ItemsSource 属性:
静态资源。 有关详细信息,请参阅 StaticResource 标记扩展。
x:Static 代码实体。 有关详细信息,请参阅 x:Static Markup Extension。
类型的内联集合 ComboBoxItem 。
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) |
方法
事件
CopyingCellClipboardContent |
在单元格剪贴板内容准备好之后发生。 (继承自 DataGridColumn) |
PastingCellClipboardContent |
在剪贴板内容传输到单元格之前发生。 (继承自 DataGridColumn) |