我试图在DataGrid
中显示SQL Server表的内容。我已经将其减少到最基本的版本,并保留所有默认值,并且看不到任何列标题或任何行。
下面是我的代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Test1DataSet test1DataSet = new Test1DataSet();
Test1DataSetTableAdapters.AdminUserTableAdapter tableAdapter =
new Test1DataSetTableAdapters.AdminUserTableAdapter();
tableAdapter.Fill(test1DataSet.AdminUser);
Test1DataSet.AdminUserDataTable dataTable = tableAdapter.GetData();
Console.WriteLine(dataTable.Count);
dataGrid.DataContext = dataTable.DefaultView;
}
}
下面是XAML:
<Grid Name="Grid1">
<DataGrid Margin="25" Name="dataGrid">
<!-- <DataGrid.Columns>
<DataGridTextColumn Header="id" Binding="{Binding id}" />
<DataGridTextColumn Header="Name" Binding="{Binding LastName}" />
</DataGrid.Columns> -->
</DataGrid>
</Grid>
表格定义:CREATE TABLE [dbo].[AdminUser]([id] INT IDENTITY(1,1)NOT NULL,[EmployeeNumber] NVARCHAR(30)NOT NULL,[FirstName] NVARCHAR(100)NULL,[LastName] NVARCHAR(100)NULL,[isSA] BIT NOT NULL,[isDA] BIT NOT NULL);
1条答案
按热度按时间sqougxex1#
FramworkElement.DataContext
属性是用来作为数据绑定的上下文的。它允许定义与源无关的绑定,当数据源更改时可以重用这些绑定。Data binding overview (WPF .NET)
当你想在
ItemsControl
中显示数据时,你必须始终将数据源分配给ItemsControl.ItemsSource
属性(而不是FrameworkElement.DataContext
)。使用数据绑定(和
DataContext
)分配数据源:或者如果您不使用数据绑定: