2009-08-13 2 views
1

Gibt es eine Möglichkeit, den Anfangswert einer datengebundenen ComboBox in XAML festzulegen?Initialisieren Sie ein WPF-Kombinationsfeld in XAML?

Hier ist meine ComboBox:

<ComboBox 
    IsSynchronizedWithCurrentItem="True" 
    ItemsSource="{Binding Source={StaticResource NHibernateTypes}}" 
    SelectedValue="{Binding ElementName=IdentifierPoperty, Path=PropertyType}" 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Top" 
    Grid.Row="1" 
    Grid.Column="1" 
    Margin="0,5,10,0"/> 

Die ItemsSource ist ein ObjectDataProvider, die Werte aus einer Enum bekommt. Ich hätte gerne den ersten Wert in der Enumeration standardmäßig in der Combo-Box angezeigt. Ich habe versucht, SelectedIndex="0" zu setzen, aber nichts passierte.

Hier ist das wirklich seltsame Ding. Ich habe ein halbes Dutzend dieser Kombinationsboxen in meinem Fenster, alle auf die gleiche Weise wie oben deklariert. Ungefähr die Hälfte von ihnen zeigt standardmäßig den ersten Wert in ihrer Enumeration, aber die anderen sind leer. Ich habe überprüft, dass alle Bindungen funktionieren - jedes Kombinationsfeld zeigt das richtige Dropdown-Menü an, wenn ich darauf klicke.

Gibt es eine Möglichkeit, einen Standardindexwert für diese Kombinationsfelder explizit festzulegen? Gibt es einen Grund, warum einige Kombinationsfelder standardmäßig einen Wert anzeigen, andere dagegen nicht? Danke für Ihre Hilfe.

David Veeneman
Foresight Systeme

Antwort

1

Gefunden meine Antwort - ich das Objekt Datenprovider falsch verwendet hat. Ich hatte ein ODP für jedes Enum erstellt, das ich an ein Kombinationsfeld binden musste, mit dem Ergebnis, dass mehrere Kombinationsfelder an dasselbe ODP gebunden waren. Das hat das Problem verursacht. Ich änderte meine ODPs, um ein ODP für jedes Kombinationsfeld zur Verfügung zu stellen (einige ODPs lesen die gleiche Enum) und das löste das Problem. Meine Comboboxen initialisieren sich jetzt richtig.