гиперссылка данных - PullRequest
       8

гиперссылка данных

0 голосов
/ 06 ноября 2010

В сетке данных я бы хотел добавить гиперссылку в содержимое ячейки

<sdk:DataGridTextColumn Binding="{Binding Code}" Header="Code" Width="40"  HeaderStyle="{StaticResource myStyle}" />

только если содержимое свойства MyUrl [того же объекта, который содержит код, к которому я уже привязан], не равно нулю или не пусто

Как мне это сделать?

1 Ответ

3 голосов
/ 06 ноября 2010

Если вы хотите, чтобы этот столбец был доступен только для чтения, вы можете использовать DataGridTemplateColumn, вставить HyperLinkButton и связать IsHitTestVisible с MyUrl с помощью преобразователя, подобного этому

<sdk:DataGridTemplateColumn Header="Code" Width="40">
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <HyperlinkButton IsHitTestVisible="{Binding Path=MyUrl,
                             Converter={StaticResource InvertNullOrEmptyConverter}}"
                             Content="{Binding Code}" NavigateUri="{Binding MyUrl}"/>
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>

И в преобразователе

public class InvertNullOrEmptyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string valueToCheck = value as string;
        if (valueToCheck == null || valueToCheck == string.Empty)
        {
            return false;
        }
        return true;
    }
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...