Поделиться через


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 который задает Uri с Binding помощью свойства и текст гиперссылки со свойством ContentBinding . Событие 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 элемент является узлом навигации. Примерами узлов навигации являются NavigationWindow, Frameили любой браузер, в котором могут размещаться XBAP. Дополнительные сведения см. в статье "Узлы навигации" статьи Общие сведения о навигации.

Дополнительные сведения о поддержке XBAP см. в разделе Часто задаваемые вопросы о приложениях WPF, размещенных в браузере (XBAP).

Чтобы заполнить столбец, привяжите столбец к Uri данным с помощью Binding свойства . Чтобы отобразить текст гиперссылки, отличный от строки URI, привяжите текстовое значение к свойству ContentBinding . Свойство Binding применяется к элементу или TextBox , Hyperlink созданному в столбце . Для DataContext элемента в каждой ячейке является элементом данных для строки, в которых находится ячейка. Таким образом, чтобы настроить привязку, необходимо только задать Binding.Path. При необходимости можно указать Binding.Converter , если требуется преобразовать данные. Дополнительные сведения о привязке данных см. в разделе Привязка данных (WPF).

Примечание

DataGridHyperlinkColumn создает Hyperlink элемент в режиме без редактирования и 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)

Приводит значение указанного свойства зависимостей. Это осуществляется путем вызова какой-либо функции CoerceValueCallback, указанной в метаданных свойства зависимостей, которое существует в вызывающем объекте DependencyObject.

(Унаследовано от 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)

Применяется к

См. также раздел