rayraisemeup
rayraisemeup

Reputation: 13

c# xaml - Data grid doesn't show the columns I set

I need a data grid with 3 text columns. This is my code:

<StackPanel>
    <DataGrid ItemsSource="{Binding x}">
        <DataGridTextColumn Header="Code" Binding="{Binding x}"/>
        <DataGridTextColumn Header="Name" Binding="{Binding x}"/>
        <DataGridTextColumn Header="Account" Binding="{Binding x}"/>
    </DataGrid>
</StackPanel>

But this is my result: A data grid without columns but I have set them! Any ideas of what is happening?

P.S.: PLEASE DON'T FORGET TO OPEN THE LINK TO THE IMAGE! It's a screen shot of the result so everyone can understand

Upvotes: 1

Views: 279

Answers (2)

mm8
mm8

Reputation: 169210

You forgot the <DataGrid.Columns> element in your XAML.

You should add the columns to the Columns property of the DataGrid:

<StackPanel>
    <DataGrid ItemsSource="{Binding x}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Code" Binding="{Binding x}"/>
            <DataGridTextColumn Header="Name" Binding="{Binding x}"/>
            <DataGridTextColumn Header="Account" Binding="{Binding x}"/>
        </DataGrid.Columns>
    </DataGrid>
</StackPanel>

If you omit the <DataGrid.Columns> element, you are adding the columns to the Items Collection which is why you see no columns.

Upvotes: 1

WooHoo
WooHoo

Reputation: 1922

Try

<StackPanel>
    <DataGrid ItemsSource="{Binding x}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Code" Binding="{Binding x}"/>
            <DataGridTextColumn Header="Name" Binding="{Binding x}"/>
            <DataGridTextColumn Header="Account" Binding="{Binding x}"/>
        </DataGrid.Columns>
    </DataGrid>
</StackPanel>

enter image description here

Upvotes: 0

Related Questions