我有一个绑定到以下类的WPF网格:
public class Output{
public string TaskName { get; private set; }
public string Log { get; set; }
}
网格:
<DataGrid AutoGenerateColumns="False">
<DataGrid.Resources>
<sys:String x:Key="viewdetails">view...</sys:String>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Task" Binding="{Binding TaskName}" />
<DataGridHyperlinkColumn Header="Log"
ContentBinding="{Binding Source={StaticResource viewdetails}}" >
<DataGridHyperlinkColumn.ElementStyle>
<Style TargetType="TextBlock">
<EventSetter Event="Hyperlink.Click" Handler="ViewLogClick" />
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
</DataGrid.Columns>
</DataGrid>
Log是一个超链接列,点击链接后会在新窗口中显示日志文件的内容。
如果Output.Log为空,是否可以隐藏日志链接?
答案 0 :(得分:0)
尝试将TargetNullValue添加到您的列Binding。
<DataGridHyperlinkColumn Header="Log"
ContentBinding="{Binding Source={StaticResource viewdetails}, TargetNullValue={x:Static sys:String.Empty}}">
答案 1 :(得分:0)
感谢您的回复。
我创建了一个新属性,并将超链接列绑定到LogLink作为解决方法:
private string _log;
public string Log
{
get { return _log; }
set
{
_log = value;
if (!String.IsNullOrEmpty(value))
{
LogLink = "view...";
}
}
}
private string _logLink;
public string LogLink
{
get
{
return _logLink;
}
set
{
_logLink = value;
FirePropertyChangedEvent("LogLink");
}
}