我在运行时动态地将列添加到datatable / datagrid(DataGridTemplateColumn),然后将单元格数据(文件路径)显示为带有DataTemplate的按钮 . 由于许多单元格没有文件路径...我试图通过使用DataTrigger使这些单元格为空,但我收到错误:

PresentationFramework.dll中的'System.Windows.Markup.XamlParseException'附加信息:'Set property'System.Windows.FrameworkTemplate.Template'抛出异常 . '行号“35”和行位置“14” .

<DataTemplate x:Key="DataTemplate2Copy">
        <Button Name="fileButton" Click="Button_Click">
            <Button.Style>
                <Style  TargetType="{x:Type Button}">
                    <Style.Triggers>
                        <DataTrigger Value ="noLINK">
                            <Setter Property="Visibility" Value="Hidden"/>
                        </DataTrigger>
                    </Style.Triggers>
                    <Style.Setters>
                        <Setter Property="Visibility" Value="Visible"/>
                        <Setter Property="Background">
                            <Setter.Value>
                                <ImageBrush ImageSource="C:\Images\PDFicon.png" Stretch="Uniform"/>
                            </Setter.Value>
                        </Setter>
                    </Style.Setters>
                </Style>
            </Button.Style>
        </Button>
    </DataTemplate>

这里是它被调用的地方和突出显示的错误:

private void masterSetDataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    if (e.Column.Header.ToString() == "FileName")
        e.Column.Header = "File Name";

    else
    {
        string origHeader = e.Column.Header.ToString();

        DataGridTemplateColumn templateColumn = new DataGridTemplateColumn    //Error highlighting starts here
        {
            Header = origHeader,
            CellTemplate = (DataTemplate) Resources["DataTemplate2Copy"]
        };                              //Error highlighting ends here
        e.Column = templateColumn;

    }
}