none
ComboBox - Zwei Bindings RRS feed

  • Frage

  • Hallo Leute,

     

    ich glaube mein Problem ist recht einfach, aber ich steh mal wieder aufm Schlauch.

    Also: Ich habe eine ListView welche Objekte A anzeigt. In jeder Zeile ist auch eine ComboBox und diese ComboBox soll eine Liste aus Objekten B anzeigen. An sich kein Problem, hab beim initialisieren den DataContext von der ComboBox auf die Liste gesetzt. Jetzt das Problem: in Objekt A gibt es eine Variable für ein Objekt B.

    Die ComboBox soll also die Liste aus B anzeigen, aber ausgewählt sein soll das Objekt B welches in dem jeweiligen A sich befindet.

    (Oh man ist echt schwer sowas zu erklären) Weiß jemand Rat?

    Vielen Dank schonmal

    Gruß B

    Mittwoch, 1. Dezember 2010 12:56

Alle Antworten

  • niemand?
    Donnerstag, 2. Dezember 2010 11:29
  • Mit einer ListBox kann man das so machen:

      <ListBox ItemsSource="{Binding Items}">
        <ListBox.ItemTemplate>
          <DataTemplate>
            <StackPanel Orientation="Horizontal">
              <TextBlock Text="{Binding Name}" />
              <ComboBox ItemsSource="{Binding Internal.InternalNames}">
              </ComboBox>
            </StackPanel>
          </DataTemplate>
        </ListBox.ItemTemplate>
      </ListBox>
    
    Donnerstag, 2. Dezember 2010 11:45
    Beantworter
  • Danke für die Antwort, aber das habe ich nicht gemeint. Das sind ja zwei verschiedene Sources.
    Donnerstag, 2. Dezember 2010 14:15
  • Nein das sind keine 2 verschiedenen Sourcen.

    Hier ist der Code für das Objektmodell:

        private ObservableCollection<ObjectA> _items;
        public ObservableCollection<ObjectA> Items
        {
          get
          {
            if (_items == null)
            {
              _items = new ObservableCollection<ObjectA>();
              for (int i = 0; i < 10; i++)
    			    {
                _items.Add(new ObjectA("Name" + i));
    			    }
            }
            return _items; 
          }
        }
    
        public class ObjectA
        {
          public ObjectA(string name)
          {
            this.Name = name;
            this.Internal = new ObjectB();
          }
          public string Name { get; set; }
          public ObjectB Internal { get; set; }
        }
        public class ObjectB
        {
          public ObjectB()
          {
            this.InternalNames = new List<string>();
            for (int i = 0; i < 10; i++)
            {
              this.InternalNames.Add("InternalName" + i);
            }
          }
          public List<string> InternalNames { get; set; }
        }
    
    Donnerstag, 2. Dezember 2010 14:51
    Beantworter
  • Wieder danke, aber Objekt B ist nur eins und ich hab eine Observerbal Collection aus Objekten B. Die Collection soll angezeigt werden und dann in die variable (object B) in Object A geschrieben werden. Object A, kennt aber die Collection aus B's nicht. Ist etwas vertrackt ich weiß.

     

    Gruß B

     

     

    Donnerstag, 2. Dezember 2010 16:20