WPF ADO.NET没有返回任何结果

时间:2014-06-28 20:00:55

标签: c# wpf ado.net

我在使用ADO.NET Framework将结果返回到WPF应用程序中的DataGrid时遇到了问题。

第一个记录是文字,第二个记录是第二个记录,第三个记录是日期(如果有人能给我一个答案,如何使这个字符串变得很棒)。

首先,DataGrid XAML代码

<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Grid.ColumnSpan="4" Height="200" HorizontalAlignment="Left" ItemsSource="{Binding Source={StaticResource testViewSource1}}" Margin="113,290,0,0" Name="testDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="319" Loaded="testDataGrid_Loaded">
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="numerZamowieniaColumn" Binding="{Binding Path=numerZamowienia}" Header="numer Zamowienia" Width="SizeToHeader" />
            <DataGridTextColumn x:Name="iloscDostawcowColumn" Binding="{Binding Path=iloscDostawcow}" Header="ilosc Dostawcow" Width="SizeToHeader" />
            <DataGridTemplateColumn x:Name="dataUtworzeniaColumn" Header="data Utworzenia" Width="SizeToHeader">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <DatePicker SelectedDate="{Binding Path=dataUtworzenia, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

我在加载这个DataGrid时创建了事件处理程序:

zamowienieEntities zam = new zamowienieEntities();

 private void testDataGrid_Loaded(object sender, RoutedEventArgs e)
    {
        IBindingList users = ((from d in zam.Test
                               select new { d.numerZamowienia, d.iloscDostawcow, d.dataUtworzenia }
      ) as IListSource).GetList() as IBindingList;

        this.testDataGrid.DataContext = users;


    }

这是尝试完成这项工作的众多方法之一,我现在正在考虑几个小时,并且找不到任何具体的答案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

当你这样做时

ItemsSource="{Binding Source={StaticResource testViewSource1}}"

您将ItemsSource绑定到某个testViewSource1资源,以便更改DataContext,就像您在此行中所做的那样

this.testDataGrid.DataContext = users;

不会影响DataGrid项的来源。解决您问题的方法之一是直接设置ItemsSource而不是DataContext

this.testDataGrid.ItemsSource = users;

然后您不需要ItemsSource绑定,或者如果您想设置DataContext,则需要将ItemsSource绑定更改为

ItemsSource="{Binding}"

ItemSource绑定到当前DataContext