将 Combobox ItemsSource BindingContext 设置为 ViewModel

set Combobox ItemsSource BindingContext to ViewModel

我有一个 ListView,我在其中放置了一些组合框,如下所示:

<ListView x:Name="ListViewCategories" SelectedItem="{Binding SelectedCategory}"  ItemsSource="{Binding ListCategoryPart}" SelectionChanged="ListViewCategories_SelectionChanged">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView>
            <GridViewColumn Header ="{x:Static p:Resources.Machine}" >
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox
                ItemsSource="{Binding ListCutMachines}"
                SelectedValuePath="ID"
                SelectedValue="{Binding DefaultCutMachine, UpdateSourceTrigger=PropertyChanged}"
                DisplayMemberPath="Name" Width="100"
                />
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

DefaultCutMachine 是我的对象的一部分CategoryPart(ListView 中列出的项目)。

但我想要的不是从我的对象中而是从我的 ViewModel 中获取 Combobox ItemsSource。

我如何才能绑定我的所有 Items Comboboxes ItemsSource,而不是来自 Items,而是来自我的 ViewModel?(我阅读了有关 "BindingContext",但没有找到如何在 ComboBox ItemsSource 上执行此操作)

本质上,您想要创建一个具有 RelativeSource 的绑定以及您的 ViewModel 的正确 DataContext

这是一个例子:

ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListView}}, Path=DataContext.ListCutMachines}"

希望对您有所帮助。