使用 DataGridTemplateColumn.CellTemplate 并绑定到数据表时在 DataGrid 中重复列

Har*_*hal 2 .net c# wpf datatable wpfdatagrid

我在 DataGrid 中遇到问题。我需要在数据网格中使结果可点击。为此,我需要使用绑定结果显示一些结果和一些可点击的结果<DataGridTemplateColumn>

<DataGrid Name="Result" IsReadOnly="True" ItemsSource="{Binding Result}" AutoGenerateColumns="True" Height="200">      

 <DataGridTemplateColumn Header="Image">
      <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
          <StackPanel>
            <Button  Content="{Binding Image}" Name="Image" Click="Button_Click" />
          </StackPanel>
        </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

但在结果中我得到了重复的列名,因为一个来自绑定结果,一个来自<datagridtemplatecolumn>. 有人可以帮我从绑定结果中删除重复的列名吗?

mm8*_*mm8 6

有人可以帮我从绑定结果中删除重复的列名吗?

只需将AutoGenerateColumns属性设置为False

<DataGrid Name="Result" IsReadOnly="True" ItemsSource="{Binding Result}" AutoGenerateColumns="False" Height="200">
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="Image">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <StackPanel>
                        <Button  Content="{Binding Image}" Name="Image" Click="Button_Click" />
                    </StackPanel>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

然后DataGrid不会生成任何列,您只会看到您在 XAML 标记中明确定义的列,即在这种情况下的“图像”列。