Announcement

Collapse
No announcement yet.

EF, PK<->FK, ComboBox Binding

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • EF, PK<->FK, ComboBox Binding

    Ich habe ein kleines Problem mit dem Binden einer Combobox. Das Szenario stellt sich so dar, dass ich eine View per DataContext an eine Instanz von Employees binde. Die Textfelder kann ich so einfach mit
    Code:
    <TextBox Grid.Column="1" Grid.Row="8" Name="textBox7" Width="180" HorizontalAlignment="Center" Text="{Binding City}"/>
    binden.

    Jetzt habe ich eine weitere Entity, die Companies heißt. Ein Employee ist eben einer Company zugeordnet. So ist es auch in der DB mit Hilfe von Primary- bzw Foreign-Key abgebildet. Das DataModel weiß auch darüber bescheid und hat die Entities entsprechend angelegt:
    Code:
     [DataMember]
            public Nullable<int> FK_CompanyID
            {
                get { return _fK_CompanyID; }
                set
                {
                    if (_fK_CompanyID != value)
                    {
                        ChangeTracker.RecordOriginalValue("FK_CompanyID", _fK_CompanyID);
                        if (!IsDeserializing)
                        {
                            if (Companies != null && Companies.PK_ID != value)
                            {
                                Companies = null;
                            }
                        }
                        _fK_CompanyID = value;
                        OnPropertyChanged("FK_CompanyID");
                    }
                }
            }
            private Nullable<int> _fK_CompanyID;
        
            [DataMember]
            public Nullable<int> FK_PositionID
            {
                get { return _fK_PositionID; }
                set
                {
                    if (_fK_PositionID != value)
                    {
                        ChangeTracker.RecordOriginalValue("FK_PositionID", _fK_PositionID);
                        if (!IsDeserializing)
                        {
                            if (Positions != null && Positions.PK_ID != value)
                            {
                                Positions = null;
                            }
                        }
                        _fK_PositionID = value;
                        OnPropertyChanged("FK_PositionID");
                    }
                }
            }
            private Nullable<int> _fK_PositionID;
    
            #endregion
            #region Navigationseigenschaften
        
            [DataMember]
            public Companies Companies
            {
                get { return _companies; }
                set
                {
                    if (!ReferenceEquals(_companies, value))
                    {
                        var previousValue = _companies;
                        _companies = value;
                        FixupCompanies(previousValue);
                        OnNavigationPropertyChanged("Companies");
                    }
                }
            }
            private Companies _companies;
        
            [DataMember]
            public Positions Positions
            {
                get { return _positions; }
                set
                {
                    if (!ReferenceEquals(_positions, value))
                    {
                        var previousValue = _positions;
                        _positions = value;
                        FixupPositions(previousValue);
                        OnNavigationPropertyChanged("Positions");
                    }
                }
            }
    Jetzt möchte ich gerne eine Combobox in der besagten View an das Feld "Companies" binden und natürlich nur die Namen ausgeben. Dh in der Combobox sollen die Firmen erscheinen und die Möglichkeit bestehen so den Employee einer anderen Firma zuzuordnen.

    Code:
    <ComboBox Grid.Column="4" Grid.Row="1" Height="23" HorizontalAlignment="Left" Name="comboBox1" VerticalAlignment="Top" Width="180" DisplayMemberPath="Name" ItemsSource="{Binding Path=Companies}" />
    Leider passiert nichts. Die Daten werden übrigens über einen WCF-Service geschoben - falls das noch wichtig wäre, aber die Properties "Firstname, etc." die direkt Teil des Objektes Employees sind werden richtig angezeigt. Nur eben die Companies in der Combobox nicht. Dh am Service sollte es nicht liegen. Mir ist auch bewusst, das sich ja eigentlich im Feld "Companies" ein nur ein Objekt von Companies zurück bekomme und keine Liste aller Companies. Irgendwie stehe ich auf dem Schlauch...

    Jemand eine Idee?

    Gruß
Working...
X