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

本文关键字:返回 任何 结果 ADO NET WPF | 更新日期: 2023-09-27 18:10:51

我有一个使用ADO在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;

    }

这是试图使这个工作的许多方法之一,我现在已经坐了几个小时了,但是没有找到任何具体的答案。

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

当你这样做的时候

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