2017-03-15 6 views
4

Ich habe Liste von Tabs, wo Tab ist:WPF Bindung an Combobox

public class Tab 
{ 
    public int Id {get; set;} 
    public string Name {get; set} 
    public List<country> Country {get; set;} 

} 

Nun will ich es zwei Comboboxen binden: Erste Combobox in Ordnung ist, aber auf den zweiten möchte ich Länderliste angezeigt werden soll.

<custom:ComboBox Title="Tab" 
       ItemsSource="{Binding Tabs, Mode=TwoWay}" 
       ValuePath="Id" 
       Value="{Binding Model.Id, Mode=TwoWay}" 
       DisplayPath="Name" 
       IsEnabled="{Binding IsEnabled, Mode=TwoWay}"/> 


<custom:ComboBox Title="Country" 
       SelectedItem="{Binding Model.Country, Mode=TwoWay}" 
       ItemsSource="{}" 
       DisplayPath="CountryName" 
       IsEnabled="{Binding IsEnabled, Mode=TwoWay}"/> 

Wie ItemsSource auf zweite Combobox setzen, wenn ich Id kenne. Ist eine andere Möglichkeit, als varible wie selectedList zu erstellen und dann an sie zu binden?

EDIT

enter image description here

ich neue dialogbox bin die Schaffung und ich schicke hat Registerkarte Liste Modell mit Tab-ID und dialogbox Kontext.

Antwort

4

Geben Sie Ihren ersten ComboBox einen Namen mit x:Name="FirstComboBox" und Ihrem ItemsSource der zweiten ComboBoxto ItemsSource="{Binding ElementName=FirstComboBox, Path=SelectedItem.Country}" ändern.

Nur ein Hinweis: Wenn Sie Sammlungen in XAML binden, verwenden Sie ObservableCollection<T> anstelle von List<T>.

+0

Die zweite Combobox wird nur neu geladen, wenn ich den Wert manuell aus der ersten Combobox auswähle. Wenn ich automatisch binde, ist die zweite Combobox leer, dann muss ich zuerst den Wert aus der Combobox auswählen und dann die zweite Combox. Sollte ich UpdateSourceTrigger = PropertyChanged oder etwas verwenden – dMilan

+0

Um zweite Combobox zu aktualisieren, muss ich zuerst klicken. Wie aktualisiert man die zweite Combobox automatisch? – dMilan

+0

Was meinst du mit automatisch? –