绑定ComboBox项目源

在一个
DataGrid
(它有它的
ItemSource
)我的行有一个
ComboBox
,我想将它的
ItemSource
绑定到
ViewModel
的列表,但我不能。因为
DataContext
不是
ViewModel
,任何人都有想法解决这个问题? 样品:
CilyCollection
StatusList
ViewModel
中的两个列表。每个城市都有一个
Status
财产。
<Grid x:Name="LayoutRoot" DataContext="ViewModel">
    <sdk:DataGrid Grid.Row="1"
                  AutoGenerateColumns="False"
                  ItemsSource="{Binding CityCollection}">
        <Controls:DataGrid.Columns>
            <Controls:DataGridTemplateColumn Header="Status">
                <Controls:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox ItemsSource="{Binding StatusList}"
                                  Margin="2"
                                  SelectedItem="{Binding status,Mode=TwoWay}"
                                  ItemTemplate="{StaticResource StatusTemplate}" />
                    </DataTemplate>
                </Controls:DataGridTemplateColumn.CellTemplate>
            </Controls:DataGridTemplateColumn>
        </Controls:DataGrid.Columns>
    </sdk:DataGrid>
</Grid>
    
已邀请:
尝试使用相对源绑定
{Binding DataContext.StatusList, RelativeSource={RelativeSource  AncestorType={x:Type ItemsControl}}}
    
您可以在DataTemplate中访问CilyCollection项。所以你可以绑定到city的Status属性。无法访问StatusList。要绑定StatusList,请尝试:   &LT; DataTemplate>      &LT; ComboBox ItemsSource =“{Binding ElementName = LayoutRoot,Path = DataContext.StatusList}”>      ...     

要回复问题请先登录注册