2017-03-24 2 views
0

私はWPFのPOSプロジェクトで作業していますが、現在のまたは最後の顧客IDに関連付けられたすべてのレコードをDataGridに取得します。私はテーブルから*を選択してそれを取得しながら、他のプロジェクトで同じ作業をしました。しかし、今回はなぜこのコードがうまくいかないのかわかりません。私の質問に出力イメージを含めています。DataGridは、データベースから取得したデータを1行に2回繰り返します。

<DataGrid x:Name="dataGrid" ItemsSource="{Binding DataSource}" HorizontalAlignment="Left" Margin="115,312,0,0" VerticalAlignment="Top" Height="376" Width="864"> 
    <DataGrid.Resources> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
      <Setter Property="Background" Value="#1C75BC" /> 
      <Setter Property="Foreground" Value="White"/> 
      <Setter Property="BorderBrush" Value="Black" /> 
      <Setter Property="BorderThickness" Value="1" /> 
      <Setter Property="Height" Value="20" /> 
     </Style> 
    </DataGrid.Resources> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="BarCode" Binding="{Binding BarCode}" Width="*" /> 
     <DataGridTextColumn Header="ProductName" Binding="{Binding ProductName}" Width="*"/> 
     <DataGridTextColumn Header="UnitPrice" Binding="{Binding UnitPrice}" Width="*" /> 
     <DataGridTextColumn Header="SalePrice" Binding="{Binding SalePrice}" Width="*" /> 
     <DataGridTextColumn Header="Quantity" Binding="{Binding Quantity}" Width="*" />      
    </DataGrid.Columns> 
</DataGrid> 
private void FillDataGrid(int counttt) 
{ 
    SqlConnection connn = db.getConnection(); 
    connn.Open(); 
    string CmdString = string.Empty; 
    //DateTime dateTime = DateTime.UtcNow.Date; 
    //String d = (dateTime.ToString("dd/MM/yyyy")); 
    CmdString = "SELECT BarCode, ProductName, UnitPrice, SalePrice, Quantity From CustomerSale WHERE CId = '" + counttt + "'"; 
    SqlCommand cmd = new SqlCommand(CmdString, connn); 
    SqlDataAdapter sda = new SqlDataAdapter(cmd); 
    DataTable dt = new DataTable("CustomerSale"); 
    sda.Fill(dt); 
    dataGrid.ItemsSource = dt.DefaultView; 
    connn.Close(); 
} 

here is the output image when the code was executed last time

+0

データテーブルにデータが入力されていますか? –

+0

はい...しかし、出力イメージに示されているように、毎回データが2回繰り返されます –

答えて

2

無効にDataGrid.AutoGenerateColumns。マークアップ(<DataGrid.Columns>)の各データプロパティの列を作成し、ItemsSourceが設定されている場合、DataGridはAutoGenerateColumnsのデフォルト値がtrueであるため、すべてのプロパティの列も生成します。

<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" ItemsSource="{Binding DataSource}" ... 
関連する問題