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


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 является узлом навигации. Примеры узлов навигации: NavigationWindowFrameили любой браузер, который может размещать XBAPs. Дополнительные сведения см. в статье "Узлы навигации" в обзоре навигации.

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

Чтобы заполнить столбец, привязать столбец к Uri данным с помощью Binding свойства. Чтобы отобразить текст гиперссылки, отличный от строки URI, привязать текстовое значение к свойству ContentBinding . Свойство Binding применяется к элементу Hyperlink или TextBox элементу, созданному в столбце. Для 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)

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

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