WPF DataGrid在自动生成的列中绑定DataGridTemplateColumn时显示错误

时间:2019-04-03 09:14:45

标签: wpf vb.net datagrid

在WPf VB.net Datagrid中,我必须基于值绑定图像,因此我尝试为每个列绑定DataGridTemplateColumn。但我得到的错误 “ System.ArgumentException:”带有标题的DataGridColumn“”已经存在于DataGrid的列集合中。DataGrids无法共享列,并且不能包含重复的列实例。 Paremetername:项目

我在

中尝试了以下选项

AutoGeneratingColumn事件

1)e.Column = CType(grdTotal.FindResource("booleanImageTemplate"), DataGridTemplateColumn)

2)

Dim oGrdTemplate As DataGridTemplateColumn = New DataGridTemplateColumn
                oGrdTemplate.Header = e.Column.Header
                oGrdTemplate = CType(grdTotal.FindResource("booleanImageTemplate"), DataGridTemplateColumn)
                e.Column = oGrdTemplate

但是给出相同的错误。

Xaml

 <DataGridTemplateColumn x:Key="booleanImageTemplate">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Image Name="theImage" Width="64" Height="64" Source="../Resources/Help.png"/>
                    <DataTemplate.Triggers>
                        <DataTrigger Binding="{Binding Col5}" Value="0,00">
                            <Setter TargetName="theImage" Property="Source" Value="../Resources/PM.png"/>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding Col6}" Value="1,00">
                            <Setter TargetName="theImage" Property="Source" Value="../Resources/PE.png"/>
                        </DataTrigger>
                    </DataTemplate.Triggers>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

pm.xaml.vb

Private Sub AutoGeneratingColumn(sender As Object, e As DataGridAutoGeneratingColumnEventArgs)
        Dim sSpaltenbreite As String
        Dim sElementTyp As String = ""



        If e.PropertyName = "IsReadable" Or e.PropertyName = "HasValue" Then
            e.Cancel = True
            Exit Sub
        End If

        Dim oGrdTemplate As DataGridTemplateColumn = New DataGridTemplateColumn
                oGrdTemplate.Header = e.Column.Header
                oGrdTemplate = CType(grdTotal.FindResource("booleanImageTemplate"), DataGridTemplateColumn)
                e.Column = oGrdTemplate


    End Sub

在使用DatagridTemplateColumn和data.triggers动态绑定行和列之后,我想基于单元格值显示单元格中的图像。

或者有没有其他值得高度赞赏的建议。

0 个答案:

没有答案