DataGridHyperlinkColumn 类

定义

表示一个 DataGrid 列,该列在其单元格中承载 Uri 元素。

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

示例

以下示例演示一个 ,DataGridHyperlinkColumn它使用 Binding 属性设置 ,使用 ContentBinding 属性设置Uri超链接文本。 事件 Hyperlink.Click 会自动处理,因为 NavigationWindow 是 的父级 DataGrid

<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 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>
<!--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}}" />
            </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
}
End Class
//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;
    }
}
'Converts the mailto uri to a string with just the customer alias
Public Class EmailConverter
    Implements IValueConverter

    Public Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
        If value IsNot Nothing Then
            Dim email As String = value.ToString()
            Dim index As Integer = email.IndexOf("@")
            Dim [alias] As String = email.Substring(7, index - 7)
            Return [alias]
        Else
            Dim email As String = ""
            Return email
        End If
    End Function

    Public Function ConvertBack(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
        Dim email As New Uri(DirectCast(value, String))
        Return email
    End Function
End Class

注解

用于 DataGridHyperlinkColumn 显示包含 Uri的数据,例如 HTTP 地址或电子邮件地址。 下图显示了 DataGridHyperlinkColumn 的一个示例。

具有电子邮件地址的 DataGridHyperlinkColumn

注意

Hyperlink 仅当 的直接或间接父级 Hyperlink 是导航主机时,导航才会发生。 导航主机的示例包括 NavigationWindowFrame或任何可以托管 XBAP 的浏览器,例如 Microsoft Internet Explorer 6 或更高版本和 Firefox 2.0 或更高版本。 有关详细信息,请参阅导航概述中的“ 导航主机”主题。

若要填充列,请使用 Binding 属性将该列绑定到Uri数据。 若要显示与 URI 字符串不同的超链接文本,请将文本值绑定到 ContentBinding 属性。 属性 Binding 应用于 Hyperlink 在 列中创建的 或 TextBox 元素。 DataContext每个单元格中元素的 是单元格所属行的数据项。 因此,若要设置绑定,只需设置 Binding.Path。 (可选)如果要转换数据,可以指定 Binding.Converter 。 有关数据绑定的详细信息,请参阅 数据绑定 (WPF)

注意

DataGridHyperlinkColumnHyperlink 非编辑模式下创建元素 TextBox ,在编辑模式下创建 元素。

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

列类型 数据显示
DataGridCheckBoxColumn 使用 显示布尔数据。
DataGridComboBoxColumn 使用 显示枚举数据。
DataGridTextColumn 使用 显示文本。

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

构造函数

DataGridHyperlinkColumn()

初始化 DataGridHyperlinkColumn 类的新实例。

字段

TargetNameProperty

标识 TargetName 依赖项属性。

属性

ActualWidth

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

(继承自 DataGridColumn)
Binding

获取或设置将列与数据源中的属性关联的绑定。

(继承自 DataGridBoundColumn)
CanUserReorder

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

(继承自 DataGridColumn)
CanUserResize

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

(继承自 DataGridColumn)
CanUserSort

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

(继承自 DataGridColumn)
CellStyle

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

(继承自 DataGridColumn)
ClipboardContentBinding

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

(继承自 DataGridBoundColumn)
ContentBinding

获取或设置超链接的文本的绑定。

DataGridOwner

获取包含此列的 DataGrid 控件。

(继承自 DataGridColumn)
DefaultEditingElementStyle

EditingElementStyle 属性的默认值。

DefaultElementStyle

ElementStyle 属性的默认值。

DependencyObjectType

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

(继承自 DependencyObject)
Dispatcher

获取与此 Dispatcher 关联的 DispatcherObject

(继承自 DispatcherObject)
DisplayIndex

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

(继承自 DataGridColumn)
DragIndicatorStyle

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

(继承自 DataGridColumn)
EditingElementStyle

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

(继承自 DataGridBoundColumn)
ElementStyle

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

(继承自 DataGridBoundColumn)
Header

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

(继承自 DataGridColumn)
HeaderStringFormat

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

(继承自 DataGridColumn)
HeaderStyle

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

(继承自 DataGridColumn)
HeaderTemplate

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

(继承自 DataGridColumn)
HeaderTemplateSelector

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

(继承自 DataGridColumn)
IsAutoGenerated

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

(继承自 DataGridColumn)
IsFrozen

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

(继承自 DataGridColumn)
IsReadOnly

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

(继承自 DataGridColumn)
IsSealed

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

(继承自 DependencyObject)
MaxWidth

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

(继承自 DataGridColumn)
MinWidth

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

(继承自 DataGridColumn)
SortDirection

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

(继承自 DataGridColumn)
SortMemberPath

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

(继承自 DataGridColumn)
TargetName

获取或设置超链接的目标窗口或框架的名称。

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)

获取一个可编辑 TextBox 元素,该元素绑定到列的 ContentBinding 属性值。

GenerateElement(DataGridCell, Object)

获取一个只读 Hyperlink 元素,该元素绑定到列的 ContentBinding 属性值。

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)
OnBindingChanged(BindingBase, BindingBase)

注意,DataGrid 属性的值更改时的 Binding

(继承自 DataGridBoundColumn)
OnCoerceIsReadOnly(Boolean)

基于包含此列的数据网格的属性规则,确定 IsReadOnly 属性的值。

(继承自 DataGridBoundColumn)
OnContentBindingChanged(BindingBase, BindingBase)

DataGrid 属性值更改时通知 ContentBinding

OnCopyingCellClipboardContent(Object)

引发 CopyingCellClipboardContent 事件。

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

引发 PastingCellClipboardContent 事件。

(继承自 DataGridColumn)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

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

(继承自 DependencyObject)
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)

适用于

另请参阅