无法在WPF中绑定网格

时间:2013-06-03 08:24:11

标签: c# .net wpf visual-studio-2010 .net-4.0

我是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>

此代码中没有错误。

但我的网格仍未绑定到桌面上。

它只显示水平线。

截图:

enter image description here

我不明白为什么我会遇到这个问题。

请指导我。

修改

<DataGrid AutoGenerateColumns="True">之后的网格

enter image description here

3 个答案:

答案 0 :(得分:2)

尝试更改如下:

<DataGrid AutoGenerateColumns="True" DataContext="{Binding}"> 

答案 1 :(得分:1)

尝试更改您的Xaml并设置AutoGenerateColumns="True".

这允许网格为您的数据创建列。如果未将其设置为true,则必须为要显示的列添加列定义。

答案 2 :(得分:1)

<DataGrid AutoGenerateColumns="False">更改为

<DataGrid AutoGenerateColumns="True">

RowHeight="25"添加到DataGrid