Сетка данных Wpf показывает ошибку при связывании DataGridTemplateColumn в автоматически сгенерированном столбце - PullRequest
0 голосов
/ 03 апреля 2019

В WPf VB.net Datagrid я должен связать изображение на основе значений, поэтому я пытаюсь связать DataGridTemplateColumn для каждого столбца.Но я получаю сообщение об ошибке как System.ArgumentException: «DataGridColumn с заголовком» «уже существует в коллекции столбцов DataGrid. DataGrids не может совместно использовать столбцы и не должна содержать повторяющиеся экземпляры столбцов».Paremetername: item

Я опробовал следующие параметры в

Событие 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.

Или есть еще какие-то предложения, которые также высоко ценятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...