Frage

Meine Ansichten Datacontext ist mit zwei ObservableCollections Mitgliedern zu einer PresentationModel begrenzt. In der Ansicht habe ich ein Listview, die ItemSource zu gebunden ist, die erste ObservableCollection ist. In einer der LilstViews Spalte Ich mag Werte aus der zweiten obeservable Colletion in meinem PresentationModel präsentieren. Ich kann nicht herausfinden, wie die Werte aus der ObservableCollection in mein Combobox zu bekommen. Hat jemand eine Idee, wie dieses Problem zu lösen?

War es hilfreich?

Lösung

Das erste, was Sie tun müssen, ist eine Datenvorlage erstellen Sie Ihre ComboBox enthält, in diesem Fall habe ich die Itemssource auf eine DependencyProperty auf dem Host-Fenster gebunden. Diese enthält das Präsentationsmodell, das die Eigenschaft hat, genannt ComboSource. SelectedValue hat gebunden worden ist, über die ListViewItem Datacontext, eine Eigenschaft, die den ausgewählten Wert hält.

<ListView.Resources>
    <DataTemplate x:Key="comboBoxTemplate">
        <ComboBox
            ItemsSource="{Binding 
                            Path=ModelData.ComboSource, 
                            RelativeSource={RelativeSource AncestorType=Window}}"
            SelectedValue="{Binding 
                            Path=DataContext.Selection, 
                            RelativeSource={RelativeSource AncestorType=ListViewItem}}"
            DisplayMemberPath="Item"
            SelectedValuePath="Id"
            />
    </DataTemplate>
</ListView.Resources>

Dann müssen Sie dies aus der Celltemplate auf dem Gridviewcolumn

referenzieren
<GridViewColumn
    Header="Selection"
    Width="160"
    CellTemplate="{StaticResource comboBoxTemplate}"
    />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top