Vb.net 如何在datatemplate中设置combobox的selectedvalue和itemssource

Vb.net 如何在datatemplate中设置combobox的selectedvalue和itemssource,vb.net,mvvm,combobox,datacontext,selectedvalue,Vb.net,Mvvm,Combobox,Datacontext,Selectedvalue,这个问题与MVVM项目结构有关 为了在ListView中显示数据,我使用DataTemplate。ListView的ItemsSource是(个人的)可观察集合。到目前为止没有什么特别的 但是在DataTemplate中,我想在组合框中显示每个人的状态属性,在组合框中显示实际值,用户可以选择其他状态。 状态来自状态,这是(状态的)可观察集合 为了显示所有状态,我需要将DataContext绑定到ViewModel的“toplevel”。但是,我如何再次回到数据模板中显示的个人呢?还是我需要另一种

这个问题与MVVM项目结构有关

为了在ListView中显示数据,我使用DataTemplate。ListView的ItemsSource是(个人的)可观察集合。到目前为止没有什么特别的

但是在DataTemplate中,我想在组合框中显示每个人的状态属性,在组合框中显示实际值,用户可以选择其他状态。 状态来自状态,这是(状态的)可观察集合

为了显示所有状态,我需要将DataContext绑定到ViewModel的“toplevel”。但是,我如何再次回到数据模板中显示的个人呢?还是我需要另一种方法来解决这个问题

在XAML中,我有:

    <ComboBox DataContext="{Binding DataContext, ElementName=pageRoot}" ItemsSource="{Binding States}" DisplayMemberPath="Description" SelectedValue="{Binding ??????}"  SelectedValuePath="ID" />

我的问题是:为了正确绑定SelectedValue,以便在组合框的文本字段中显示每个人的实际状态,我需要设置什么! 对于组合框的ItemsSource,我需要DataContext层次结构的“更高”级别。我不需要将整个组合框绑定到该DataContext,而只需要将ItemsSource绑定到该级别

更正后的代码如下所示:

<ComboBox                     
                ItemsSource="{Binding DataContext.States, ElementName=pageRoot}" 
                DisplayMemberPath="Description" 
                SelectedValue="{Binding State.ID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                SelectedValuePath="ID"