如何使用ObjectDataProvider将数据集绑定到Datagrid?

时间:2015-06-15 12:15:02

标签: binding master-detail objectdataprovider

我有另一个绑定问题。 这次我想重建这里显示的Master-Detail网格:

http://www.codeproject.com/Articles/30905/WPF-DataGrid-Practical-Examples#masterdetail

但是我得到了这个错误:名称“AirplaneDataProvider”在命名空间“clr-namespace:WpfApplicationDataSetTest”中不存在

这是我的代码

XAML:

<Window x:Class="WpfApplicationDataSetTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplicationDataSetTest"
    Title="MainWindow" Height="350" Width="525">

<Window.Resources>
    <ObjectDataProvider x:Key="AirplaneDataProvider" ObjectType="{x:Type local:AirplaneDataProvider}"/>        
    <ObjectDataProvider x:Key="Airplanes" ObjectInstance="{StaticResource AirplaneDataProvider}" MethodName="GetAirplanes" />
</Window.Resources>

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <DataGrid Name="DGMaster" Grid.Row="0" ItemsSource="{Binding Source={StaticResource Airplanes}}" SelectedValuePath="AirplaneID">
    </DataGrid>
</Grid>

C#:

命名空间WpfApplicationDataSetTest {     public partial class MainWindow:Window     {         public MainWindow()         {             的InitializeComponent();
        }

    public class AirplaneDataProvider
    {
        private AirplaneTestDataSetTableAdapters.AirplaneTableAdapter AirTA;
        private AirplaneTestDataSet AirTDS;

        public AirplaneDataProvider()
        {
            AirTDS = new AirplaneTestDataSet();
            AirTA = new AirplaneTestDataSetTableAdapters.AirplaneTableAdapter();
            AirTA.Fill(AirTDS.Airplane);
        }

        public DataView GetAirplanes()
        {
            return AirTDS.Airplane.DefaultView;
        }
    }
}

}

那么我做错了什么?

1 个答案:

答案 0 :(得分:0)

将AirplaneDataProvider类放入单独的文件中。

现在你在MainWindow类里面了。希望这是问题。