C# 绑定到UWP中的视图模型和源实体

C# 绑定到UWP中的视图模型和源实体,c#,xaml,uwp,uwp-xaml,C#,Xaml,Uwp,Uwp Xaml,我正在使用作为UI社区工具包一部分提供的DataGrid组件,并希望有两个单元格显示下拉列表(ComboBox) 下拉列表的ItemsSource应来自视图模型,而SelectedItem应绑定到当前项(行)的上下文 ... 如何配置组合框的绑定,以便从页面的视图模型中提取ItemsSource,而SelectedItem绑定到GridItems集合中的当前项 大多数文章都谈到使用RelativeSource和AncestorType,但我不相信它们在UWP应用程序中可用 如何配置组合框的绑

我正在使用作为UI社区工具包一部分提供的DataGrid组件,并希望有两个单元格显示下拉列表(ComboBox)

下拉列表的ItemsSource应来自视图模型,而SelectedItem应绑定到当前项(行)的上下文


...
如何配置组合框的绑定,以便从页面的视图模型中提取
ItemsSource
,而
SelectedItem
绑定到
GridItems
集合中的当前项

大多数文章都谈到使用RelativeSource和AncestorType,但我不相信它们在UWP应用程序中可用

如何配置组合框的绑定,以便从页面的视图模型中提取ItemsSource,同时SelectedItem绑定到GridItems集合中的当前项

ComboBox的DataContext是GridItems集合中的当前项(例如模型),如果要将SelectedItem与GridItems集合中的当前项绑定,只需将当前项的属性与SelectedItem绑定即可。对于ItemsSource,如果您想与页面的视图模型绑定,您可以订阅ComboBox的加载事件,然后在此事件中将页面视图模型中的列表设置为ItemsSource。例如:

.xaml:

<tc:DataGrid ItemsSource="{Binding GridItems}">
    <tc:DataGrid.Columns>
        <tc:DataGridTemplateColumn Tag="ExampleColumn" Header="Example Column">
            <tc:DataGridTemplateColumn.CellTemplate>
                <DataTemplate x:DataType="local:Model">
                    <ComboBox Loading="ComboBox_Loading" SelectedItem="{Binding MySelectedItemFromModel}"/>
                </DataTemplate>
            </tc:DataGridTemplateColumn.CellTemplate>
        </tc:DataGridTemplateColumn>
    </tc:DataGrid.Columns>
</tc:DataGrid>

你的问题解决了吗?你还有其他问题吗?
private void ComboBox_Loading(FrameworkElement sender, object args)
{
    ComboBox box = sender as ComboBox;
    box.ItemsSource = ViewModelFromPage.Lists;
}