0

This combobox can change my button's content perfectly.

<ComboBox Margin="2 0 0 0" x:Name="languageComboBox" SelectedItem="{Binding SelectedLanguage,Mode=TwoWay}">
                <ComboBoxItem Content="English" Tag="en-US"/>
                <ComboBoxItem Content="Japanese" Tag="jp-JP" />
            </ComboBox>

My problem is, i can't change datagrid's column headers.

 </DataGrid>
        <DataGrid AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn HeaderStringFormat="{Binding Id}" Binding="{Binding Id}"/>
                <DataGridTextColumn HeaderStringFormat="{Binding Name}" Binding="{Binding Name}"/>
                <DataGridTextColumn HeaderStringFormat="{Binding Address}" Binding="{Binding Address}"/>

            </DataGrid.Columns>
 </DataGrid>

For example, when i bind Id variable to a label's content It works. I tried to many methods to change header contents but they does not work somehow.

Tried this.

 </DataGrid>
        <DataGrid AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn HeaderStringFormat="{Binding Id}" Binding="{Binding Id}"/>
                <DataGridTextColumn HeaderStringFormat="{Binding Name}" Binding="{Binding Name}"/>
                <DataGridTextColumn HeaderStringFormat="{Binding Address}" Binding="{Binding Address}"/>

            </DataGrid.Columns>
 </DataGrid>

And this.

 </DataGrid>
        <DataGrid AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="{Binding Id}" Binding="{Binding Id}"/>
                <DataGridTextColumn Header="{Binding Name}" Binding="{Binding Name}"/>
                <DataGridTextColumn Header="{Binding Address}" Binding="{Binding Address}"/>

            </DataGrid.Columns>
 </DataGrid>

I get this error for Id variable ->

System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=Id; DataItem=null; target element is 'DataGridTextColumn' (HashCode=654914); target property is 'HeaderStringFormat' (type 'String')

burnsi
  • 6,194
  • 13
  • 17
  • 27
haides
  • 3
  • 2
  • Does this answer your question? [WPF datagrid header text binding](https://stackoverflow.com/questions/1658397/wpf-datagrid-header-text-binding) – Andy Jan 13 '23 at 13:29
  • I have tried this. This one throws no errors but still doesn't work. ` ` and i don't know how to use that class in xaml. [DataContextSpy](https://stackoverflow.com/questions/1658397/wpf-datagrid-header-text-binding) – haides Jan 13 '23 at 14:00
  • Follow the link. Read the posts. The reason binding does not work in a header because it doesn't have datacontext inherited as you might expect. – Andy Jan 13 '23 at 14:05

0 Answers0