.
Anmeldung | Registrieren | Hilfe
in Suchen

Combobox in Datagrid mit Lookupwerten

Letzter Beitrag 17. Jan 2016 13:31 von HansVader. 0 Antworten.
Seite 1 von 1 (1 Treffer)
Beiträge sortieren: Zurück Weiter
  • 17. Jan 2016 13:31

    • HansVader
    • Nicht gereiht
    • Registriert am 17. Jan 2016
    • Beiträge 1
    • Punkte 5

    Combobox in Datagrid mit Lookupwerten

    Hallo,

    ich habe folgendes Szenario. Ich habe ein DataGrid, dass von einer ObservableCollection gefüllt wird. Die Observable Collection befindet sich in meinen ViewModel, und das ViewModel habe ich dann an den DataContex des Windows gehängt. Dies funktioniert sehr gut. Jetzt habe ich aber das Problem, dass einige dieser Felder geupdatet werden sollen. Ich möchte aber gerne, dass der User nur bestimme Werte auswählen kann. Also hätte ich mir überlegt, dass ich aus den Feldern eine ComboBox mache, und als "initalwert" den Wert aus meiner Ersten Collection (die mit den eigentlichen Werten) anzeige, und wenn sie geöffnet wird, dann die Werte aus der "Lookup" Collection anzeige.

    Als Beispiel habe ich mal folgenden Code. Sehr vereinfacht, und ohne NotifyPropertyChanged usw...

    public class Address
    {
        public String StreetName { get; set; }
    }
    
    public class Person
    {
        public String Name { get; set; }
        public String Street { get; set; }
    }

                <DataGridTextColumn Header="Name" Binding="{Binding Name}"></DataGridTextColumn>
                <DataGridTextColumn Header="Street" Binding="{Binding Street}"></DataGridTextColumn>
    
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox ItemsSource="{Binding DataContext.addresses, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}}" DisplayMemberPath="StreetName">
                            </ComboBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
    	    </DataGridTemplateColumn>   

    Das Problem an dieser Lösung ist, dass mein LookupCollection zwar angezeigt wird, aber nicht der Wert aus meiner ersten Collection sprich der Person Collection. (Siehe Anhang)

    Mein Frage: 
    1. Ist das überhaupt der richtige Ansatz so etwas zu machen? Zur Info ich arbeite mit MVVM und EF.
    2. Wenn ja, wie muss das Binding den richtig lauten, dass es Funktioniert?




    • IP-Adresse ist Registriert
Seite 1 von 1 (1 Treffer)

Regeln | Impressum