将 DataGirdComboBoxColumn 绑定到 DataSet 不起作用

Binding DataGirdComboBoxColumn to DataSet doesn't work

我想在数据网格中创建一个简单的主从视图。
我尝试将 DataGirdComboBoxColumn 绑定到 DataSet,但它不起作用。

这是我的 xaml 代码:

<DataGrid x:Name="DataGrid1" Grid.Column="0" Grid.Row="0" AlternatingRowBackground="#FFF0F0F0" ItemsSource="{Binding}" Height="420" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="ID" Binding="{Binding AirplaneID}" IsReadOnly="True" MinWidth="30"/>
        <DataGridTextColumn Header="Model" Binding="{Binding Model}" IsReadOnly="True" Width="Auto" MinWidth="160"/>
        <DataGridTextColumn Header="Fuel" Binding="{Binding Fuel}" MinWidth="50" />

        <DataGridComboBoxColumn x:Name="ComboBoxColumnPass" Header="Passenger" DisplayMemberPath="Name"
                                        SelectedValueBinding="{Binding AirplaneID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="AirplaneID"/>   
    </DataGrid.Columns>
    <DataGrid.ContextMenu>
        <ContextMenu>
            <MenuItem Command="ApplicationCommands.New" ToolTip="Fügt eine neue Zeile hinzu"/>
            <MenuItem Command="ApplicationCommands.Delete"  ToolTip="Löscht das ausgewählte Element"/>
        </ContextMenu>
    </DataGrid.ContextMenu>
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Margin="5">
                <TextBlock FontSize="12" TextWrapping="Wrap" Text="{Binding Detail}" />
            </StackPanel>
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
</DataGrid>

这是我的 C# 代码:

namespace WpfApplicationAirplaneDB
{
    AirplaneDBDataSet AirplaneDataSet = new AirplaneDBDataSet();
    AirplaneDBDataSetTableAdapters.AirplaneTableAdapter AirTableAdapter = new AirplaneDBDataSetTableAdapters.AirplaneTableAdapter();
    AirplaneDBDataSetTableAdapters.PassengerTableAdapter PassTableAdapter = new AirplaneDBDataSetTableAdapters.PassengerTableAdapter();

    public MainWindow()
    {
        InitializeComponent();

        AirTableAdapter.Fill(AirplaneDataSet.Airplane);
        PassTableAdapter.Fill(AirplaneDataSet.Passenger);

        DataGrid1.ItemsSource = AirplaneDataSet.Airplane.DefaultView;
        ComboBoxColumnPass.ItemsSource = AirplaneDataSet.Passenger.DefaultView;

    }
}

这是错误:

An unhandled exception of type 'System.InvalidOperationException' occurred in PresentationFramework.dll Additional information: TwoWay- oder OneWayToSource-Bindungen funktionieren nicht mit der schreibgeschützten Eigenschaft "AirplaneID" vom Typ "System.Data.DataRowView".

(抱歉德语例外)

AirplaneID 似乎是只读的。使其可写或将绑定更改为 OneWay。