我是WPF的新手。
我正在尝试在WPF中绑定datagrid。
我的代码:
con = new SqlConnection(conClass.conSTR);
try
{
con.Open();
cmd = new SqlCommand("select * from login",con);
da = new SqlDataAdapter(cmd);
DataTable dt=new DataTable("login"); //DataSet ds = new DataSet();
da.Fill(dt);
gv.ItemsSource = dt.DefaultView;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
XAML:
<Window x:Class="WpfTestApp.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="428" Width="503" Loaded="Window_Loaded" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation">
<Grid>
<TextBlock Margin="10" Text="This is a text block" Foreground="Red" TextTrimming="CharacterEllipsis" FontStretch="Normal" FontWeight="Bold"></TextBlock>
<TextBox Height="23" HorizontalAlignment="Left" Margin="10,29,0,0" Name="txtLoginID" VerticalAlignment="Top" Width="120" />
<PasswordBox Name="txtPassword" PasswordChar="*" Margin="146,28,221,337"></PasswordBox>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="100,83,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
<DataGrid AutoGenerateColumns="False" Height="247" HorizontalAlignment="Left" Margin="37,130,0,0" Name="gv" VerticalAlignment="Top" Width="303" />
</Grid>
</Window>
此代码中没有错误。
但我的网格仍未绑定到桌面上。
它只显示水平线。
截图:
我不明白为什么我会遇到这个问题。
请指导我。
修改
<DataGrid AutoGenerateColumns="True">
之后的网格
答案 0 :(得分:2)
尝试更改如下:
<DataGrid AutoGenerateColumns="True" DataContext="{Binding}">
答案 1 :(得分:1)
尝试更改您的Xaml并设置AutoGenerateColumns="True".
这允许网格为您的数据创建列。如果未将其设置为true,则必须为要显示的列添加列定义。
答案 2 :(得分:1)
将<DataGrid AutoGenerateColumns="False">
更改为
<DataGrid AutoGenerateColumns="True">
将RowHeight="25"
添加到DataGrid