DataGridComboBoxColumn - Probleme beim ItemsSource Binding



  • Hallo zusammen, hoffe ihr könnt mir helfen da ich den Fehler von allein einfach nicht finde:

    Ein UserControl enthält:

    KatalogComboBox
    - gebunden an eine ObservableCollection<FragenkatalogInfo>

    FachbereichComboBox
    - ItemsSource gebunden an KatalogComboBox.SelectedItem.VorhandeneFachbereiche (FragenkatalogInfo.VorhandeneFachbereiche)

    DataGrid
    - ItemsSource gebunden an eine CollectionView<QuestionClass>

    Mein Problem besteht nun darin die ItemsSource Eigenschaft einer DataGridComboBoxColumn an die Eigenschaft "VorhandeneFachbereiche" zu binden.

    Die FachbereichCombo ist so gebunden wobei alle gewünschten Einträge vorhanden sind:

    <ComboBox x:Name="FachbereichComboBox" IsEnabled="{Binding EditModeFlag, ElementName=UserControl}" ItemsSource="{Binding SelectedItem.VorhandeneFachbereiche, ElementName=KatalogComboBox}" SelectedValue="{Binding aktuelleFrage.fachbereich, Mode=TwoWay, Source={StaticResource IaktuelleFrageClass}, UpdateSourceTrigger=PropertyChanged}"
    

    Nun versuche ich vergeblich eine DataGridComboBox ebenso zu binden:

    <DataGridComboBoxColumn Header="DEBUG " ItemsSource="{Binding Path=SelectedItem.VorhandeneFachbereiche, ElementName=KatalogComboBox}" />
    

    Ich hoffe das ich das ganze verständlich genug erklärt habe. Das Problem ist also, das die DataGridCombo keine Einträge enthält !!!

    Wo übersehe ich etwas ?



  • Hallo,

    was sagt denn dein Ausgabefenster, gibt es einen Binding Fehler? Vermutlich bist du auf folgendes Problem gestoßen:
    http://blogs.msdn.com/b/vinsibal/archive/2008/12/17/wpf-datagrid-dynamically-updating-datagridcomboboxcolumn.aspx
    Hier gibts noch ein bißchen mehr dazu zu lesen:
    http://stackoverflow.com/questions/502389/binding-in-a-wpf-data-grid-text-column



  • Ja, ich denke das ist mein Problem.

    Da ich die ausgewählte KatalogInfo für andere Zwecke in einer weiteren DepProp stehen hatte, nutze ich jetzt einfach das Property_Changed Event:

    private static void loadedKatalog_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
            {            
                if (e.NewValue != null) ((FragenEditor)d).DGFachbereichCombo.ItemsSource = (e.NewValue as FragenkatalogInfo).VorhandeneFachbereiche;
            }
    

    Danke für deinen Tip 👍


Anmelden zum Antworten