Как установить URL-адрес навигации для текста в столбце DataGrid? - PullRequest
0 голосов
/ 30 января 2012

В моем окне WPF есть DataGrid, который привязан к базе данных.Поля базы данных Link, Title, SavedOn имеют типы nvarchar, nvarchar and DateTime соответственно.В настоящее время все поля привязаны к различным столбцам в DataGrid.Я использую DataGridHyperLinkColumn для столбца Link и Event Setter для захвата Hyperlink.Click событий.Все работает нормально.

ПРОБЛЕМА:

Но теперь я хочу сделать так, чтобы текст в Title столбце сетки данных связывался с Link, то есть при нажатиименя к Link. Используя этот подход, я сохраню один столбец, так как заголовок и кликабельная ссылка находятся в одном столбце, как и на обычных веб-страницах. Есть идеи, как мне это сделать ?.В настоящее время сетка выглядит следующим образом: enter image description here

Плюс, как я могу изменить цвет ссылок королевского синего цвета по умолчанию на что-то еще?

1 Ответ

2 голосов
/ 30 января 2012

Используйте ContentBinding для указания отображаемого текста для ссылки (просто избавьтесь от столбца Title).

Для отображения текста гиперссылки, который отличаетсячем строка URI, используйте свойство ContentBinding .

Чтобы оформить гиперссылки во всей сетке, добавьте стиль к DataGrid.Resources:

<DataGrid.Resources>
    <Style TargetType="Hyperlink">
        <Setter Property="Foreground" Value="Green" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Foreground" Value="Lime" />
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.Resources>

... чтобы применить его только к одному столбцу, назначьте его как ElementStyle столбца, однако вам нужно будет вставить его в стиле TextBlock.

<DataGridHyperlinkColumn.ElementStyle>
    <Style TargetType="TextBlock">
        <Style.Resources>
            <Style TargetType="Hyperlink">
                <!-- ... -->
            </Style>
        </Style.Resources>
    </Style>
</DataGridHyperlinkColumn.ElementStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...