我在运行时动态地将列添加到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;
}
}