2010-09-03 80 views
0

我是WPF的新手。我一直在将绑定数据发送到网格。然而,下面的例子从未调用将用于填充网格的方法。我需要做什么才能做到这一点?WPF Newbie Grid绑定问题

<Window x:Class="DataGridView.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:local="clr-namespace:DataGridView" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit" 

     Title="Window1" Height="538" Width="681" 
     xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit"> 
    <Window.Resources> 
     <ObjectDataProvider x:Key="CurrencyConversionList" ObjectType="{x:Type local:CurrencyDataProvider}" MethodName="GetCurrencyConversionList" /> 
     <ObjectDataProvider x:Key="CurrencyList" ObjectType="{x:Type local:CurrencyDataProvider}" MethodName="GetCurrencyList" /> 
    </Window.Resources> 

    <Grid> 
     <dg:DataGrid Name="dataGrid1" AutoGenerateColumns="False" Height="255" Width="481" ItemsSource="{Binding Path=Table}" 
       ClipToBounds="False"> 
      <dg:DataGrid.Columns> 
       <dg:DataGridTextColumn Binding="{Binding Path=START_DATE, Mode=TwoWay}" Header="Start Date" /> 
       <dg:DataGridTextColumn Binding="{Binding Path=END_DATE, Mode=TwoWay}" Header="End Date" /> 
       <dg:DataGridComboBoxColumn SelectedValueBinding="{Binding CURRENCY_ID}" SelectedValuePath="FROM_CURRENCY_ID" 
         DisplayMemberPath="FROM_CURRENCY_ID" Header="From Currency" 
         ItemsSource="{Binding Source={StaticResource CurrencyList}}"> 
       </dg:DataGridComboBoxColumn> 
       <dg:DataGridComboBoxColumn SelectedValueBinding="{Binding CURRENCY_ID}" SelectedValuePath="CURRENCY_ID" 
         DisplayMemberPath="ContactName" Header="To Currency"></dg:DataGridComboBoxColumn> 
       <dg:DataGridTextColumn Binding="{Binding Path=CONVERSION_RATE, Mode=TwoWay}" Header="Rate" /> 
      </dg:DataGrid.Columns> 
     </dg:DataGrid> 
    </Grid> 
</Window> 



using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Windows; 
    using System.Windows.Controls; 
    using System.Windows.Data; 
    using System.Windows.Documents; 
    using System.Windows.Input; 
    using System.Windows.Media; 
    using System.Windows.Media.Imaging; 
    using System.Windows.Navigation; 
    using System.Windows.Shapes; 

    namespace DataGridView 
    { 
     /// <summary> 
     /// Interaction logic for Window1.xaml 
     /// </summary> 
     public partial class Window1: Window 
     { 
     private QualityDataSet qualityDataSet; 
     private qualityDataSetTableAdapters.CURRENCY_CONVERSIONTableAdapter cURRENCY_CONVERSIONTableAdapter; 
     private qualityDataSetTableAdapters.CURRENCYTableAdapter cURRENCYTableAdapter; 

     public Window1() 
     { 
      InitializeComponent(); 

     } 
     } 
    } 

     namespace DataGridView 
    { 
     class CurrencyDataProvider 
     { 
     private QualityDataSet qualityDataSet; 
     private QualityDataSetTableAdapters.CURRENCY_CONVERSIONTableAdapter cURRENCY_CONVERSIONTableAdapter; 
     private QualityDataSetTableAdapters.CURRENCYTableAdapter cURRENCYTableAdapter; 

     public DataView GetCurrencyList() 
     { 
      qualityDataSet = new QualityDataSet(); 

      cURRENCYTableAdapter = new QualityDataSetTableAdapters.CURRENCYTableAdapter(); 

      cURRENCYTableAdapter.Fill(this. qualityDataSet.CURRENCY); 

      return this. qualityDataSet.CURRENCY.DefaultView; 
     } 

     public DataView GetCurrencyConversionList() 
     { 
      qualityDataSet = new QualityDataSet(); 

      cURRENCY_CONVERSIONTableAdapter = new QualityDataSetTableAdapters.CURRENCY_CONVERSIONTableAdapter(); 

      cURRENCY_CONVERSIONTableAdapter.Fill(this. qualityDataSet.CURRENCY_CONVERSION); 

      return this. qualityDataSet.CURRENCY_CONVERSION.DefaultView; 
     } 
     } 
    } 

回答

1

您需要将datagrid绑定到数据源..在这种情况下,其中一个ObjectDataProviders。

因此,上述改变

ItemsSource="{Binding Path=Table}" 

ItemsSource="{StaticResource CurrencyConversionList}" 
0

在给定的代码,在DataContext为您的DataGrid(甚至窗口)从未设置过的任何地方,所以你“的ItemsSource =” DataGrid的{绑定路径=表}“'将不起作用。也许你需要在你的构造函数中做一些类似“this.DataContext = qualityDataSet”的东西。