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

时间:2018-02-27 09:31:31

标签: c# .net wpf datatable wpfdatagrid

我在DataGrid中遇到问题。我需要在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>

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

1 个答案:

答案 0 :(得分:0)

  

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

只需将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>

然后DataGrid不会生成任何列,您只会看到您在XAML标记中明确定义的列,即&#34; Image&#34;在这种情况下的列。