Frage

Manchmal sind die einfachsten Beispiele der am schwersten zu finden. . .

ich ein Datagrid mit 2 Spalten haben. Eine Spalte enthält Rolleninformationen, die andere Spalte soll ein Kombinationsfeld mit einer Liste der verfügbaren Benutzer hat. Die Daten in der Combobox ist auf die Daten in der ersten Spalte in keinem Zusammenhang. Ich bin durch die Tatsache abgeworfen, dass die Combobox kein Datacontext hat, nur ein ItemSource und ich kann auch nicht zu verwenden scheint verbindlich.

Kann jemand bitte mich auf ein einfaches Beispiel zeigen, dass verwendet zwei verschiedene Datensätze für die Daten in einer Tabelle und das Kombinationsfeld?

War es hilfreich?

Lösung

die Spalten in der Datagrid nicht einen Datacontext haben, da sie nie in der visuellen Struktur hinzugefügt werden. klingt ein wenig seltsam, aber einen Blick auf vinces Blog , es ist ein gutes Beispiel für die visuelle Gestaltung bekam. sobald das Gitter der Zellen einen Datenkontext gezogen wird und Sie die Combo-Boxen Artikel Quelle in sie mit normalen Bindungen einstellen (nicht statische Ressourcen ..)

können Sie das Kombinationsfeldelemente Quelle als solche Zugriff

   <dg:DataGridComboBoxColumn>
      <dg:DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=MyBindingPath}" />
        </Style>
      </dg:DataGridComboBoxColumn.EditingElementStyle>
   </dg:DataGridComboBoxColumn>

einen Blick hier und auch hier für einige Code

Andere Tipps

Statt DataGridTextColumns verwendet man ein DataGridComboBoxColumn stattdessen verwenden. Dann füllt man in den Daten der Itemssource, die in der unten angegebenen Beispiel zeigt auf einen externen ENUM in den statischen Ressourcen verwenden, und schließlich eine Bindet das Ergebnis an das Zielobjekt, das die Benutzerauswahl im SelectedItemBinding halten wird.

<DataGrid.Columns>

<DataGridComboBoxColumn Header="MySelections"  
                        SelectedItemBinding="{Binding MySelectionsProperty}" 
                        ItemsSource="{Binding Source={StaticResource mySelectionsEnum}}" />
</DataGrid.Columns>

Sehen Sie ein vollständiges Beispiel auf MSDN unter DataGridComboBoxColumn Klasse

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top