0

我有一个绑定到以下类的 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>

日志是一个超链接列,单击该链接会在新窗口中显示日志文件的内容。

如果 Output.Log 为空,是否可以隐藏日志链接?

4

2 回答 2

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");
        }
    }
于 2013-01-08T15:10:33.763 回答
0

尝试将 TargetNullValue 添加到您的列绑定。

 <DataGridHyperlinkColumn Header="Log" 
    ContentBinding="{Binding Source={StaticResource viewdetails}, TargetNullValue={x:Static sys:String.Empty}}">
于 2013-01-07T18:16:45.087 回答