datagrid超链接

时间:2010-11-06 03:37:41

标签: silverlight datagrid hyperlink

在数据网格中,我想在单元格的内容中放置一个超链接

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

仅当MyUrl属性的内容[包含我已绑定的代码的同一对象]的内容既不为null也不为空

我该怎么做?

1 个答案:

答案 0 :(得分:3)

假设您希望此列是只读的,您可以使用DataGridTemplateColumn,放入HyperLinkBut​​ton并使用像这样的转换器将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();
    }
}