【问题标题】:datagrid hyperlink数据网格超链接
【发布时间】:2010-11-06 03:37:41
【问题描述】:
在数据网格中,我想在单元格的内容中放置一个超链接
<sdk:DataGridTextColumn Binding="{Binding Code}" Header="Code" Width="40" HeaderStyle="{StaticResource myStyle}" />
仅当 [包含我已经绑定的代码的同一对象的] MyUrl 属性的内容既不为空也不为空时
我该怎么做?
【问题讨论】:
标签:
silverlight
datagrid
hyperlink
【解决方案1】:
假设您希望此列是只读的,您可以使用 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();
}
}