WPF/Xaml: Databinding af kolonneoverskrifter i en DataGrid
Jeg har problemer med at få vist mine kolonneoverskrifter for en datagrid.Jeg bruger MVVM-pattern og har sat DataContext i min view til en ViewModel (PriceMatrix). ViewModel har så en ObservableCollection af ProduktPriser samt en liste af produkter. For hver produkt beregnes så en pris for de næste 5 år.
For at gøre det hele ekstra besværlig så har jeg lagt datagrid ind i en usercontrol (ProductPriceGrid) fordi jeg skal vise et variablet antal af disse grids baseret på andre data (tilhørsforhold).
Jeg vil derfor gerne have at årstal for de næste 5 år vises som kolonneoverskrifter.
Jeg har defineret 5 resourcer i usercontrol (productprice) således:
<sys:String x:Key="Year0" xml:space="preserve">Year0</sys:String>
Jeg har oprettet min datagrid således:
<Custom:DataGrid x:Uid="ProductPriceForYearGrid" x:Name="ProductPriceForYearGrid" AutoGenerateColumns="False" ItemsSource="{Binding ProductPrices}" >
<Custom:DataGrid.Columns>
<Custom:DataGridTextColumn x:Uid="Custom:DataGridTextColumn_1" Binding="{Binding PriceYear0}" Header="{DynamicResource Year0}" />
...
</Custom:DataGrid.Columns>
</Custom:DataGrid>
Inde i min codebehind fil for usercontrollen har jeg defineret en metode, som sætter disse ressourcer, alá:
this.Resources["Year0"] = years[0].ToString();
Den metode kaldes så af min viewmodel i forbindelse med at der laves nye ProductPriceGrid.
Mit problem er at der ikke vises nogen overskift. Jeg er dels i tvivl om hvorvidt datagrid leder efter de dynamiske ressourcer (Year0...) det rigtige sted (i usercontrollens resourcer) og om codebehind filen sætter de rigtige resourcer.
Kan der i forbindelse med brug af dynamiske resourcer være problemer med rækkefølgen hvori controller oprettes og initieres så jeg af den grund ikke får data vist.