如何绑定DataGridComboBoxColumn WPF的数组

Art*_*yba 0 .net c# wpf binding mvvm

我有一个带Combobox的DataGrid

<DataGridComboBoxColumn Header="Header 2" ItemsSource="{Binding Pet}">
Run Code Online (Sandbox Code Playgroud)

基于MVVM模式的项目.当我尝试在TextColumn上显示数据时,它可以工作

<DataGridTextColumn Header="Header 1" Binding="{Binding ID}" />
Run Code Online (Sandbox Code Playgroud)

但是,我不知道,如何绑定DataGridComboBoxColumn的数据.

型号代码:

    public string ID
    {
        get { return _id; }
        set { _id = value; NotifyPropertyChanged("ID"); }
    }
    public string[] Pet
    {
        get { return _pet; }
        set { _pet = value; NotifyPropertyChanged("Pet"); }
    }
Run Code Online (Sandbox Code Playgroud)

May*_*gra 6

而不是<DataGridComboBoxColumn>使用<DataGridTemplateColumn>像这样的尝试

<DataGridTemplateColumn Header="ID">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox ItemsSource="{Binding Path=DataContext.Pet, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" SelectedItem="{Binding ID}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我将我的Combobox项目源绑定为当前ViewModel中定义的Pet数组集合,并将所选项目绑定为绑定到完整DataGrid的List <>集合的ID属性.