2013-09-15 4 views
1

У меня есть сетка данных, чтобы отобразить базу данных, поступающую из базы данных. Данные поступают из двух таблиц с использованием внешнего ключа. Но проблема в том, что данные не отображаются в сетке, но строки отображаются, но строки пустые без данных. может ли одна указать на мою ошибку, когда я не правДанные не отображаются в datagrid wpf

 <DataGrid AutoGenerateColumns="False" Name="SParts_grid" HorizontalAlignment="Center" Margin="32,127,32,0" VerticalAlignment="Top" Height="161" Width="530" > 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="Part Code" Width="89" Binding="{Binding Path=SPartCode, Mode=OneWay}" /> 
       <DataGridTextColumn Header="Part Name" Width="140" Binding="{Binding Path=SPartName, Mode=OneWay}" /> 
       <DataGridTextColumn Width="90" Header="Part Price" Binding="{Binding Path=SPartSalePrice, Mode=OneWay}" /> 
       <DataGridTextColumn Header="Model" Width="90" Binding="{Binding Path=ModelName, Mode=OneWay}" /> 
       <DataGridTextColumn Header="Location" Width="60" Binding="{Binding Path=SPartLocation, Mode=OneWay}" /> 
       <DataGridCheckBoxColumn Header="Active" Width="58" Binding="{Binding Path=SPartActive, Mode=OneWay}" /> 
      </DataGrid.Columns> 
     </DataGrid> 

Так я использовал класс для назначения данных базы данных в классе

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    LoadParts(); 
} 

public class PartsListObjects 
{ 
    public int partid; 
    public string SPartName; 
    public string SPartCode; 
    public string SPartLocation; 
    public bool SPartActive; 
    public string ModelName; 
    public string SPartSalePrice; 
} 

private void LoadParts() 
{ 
    RST_DBDataContext conn = new RST_DBDataContext(); 
    List<PartsListObjects> AllParts = (from s in conn.TblSpareParts 
             join m in conn.TblBikeModels on s.ModelID equals m.ModelID 
             select new PartsListObjects() { SPartName = s.SPartName, SPartCode = s.SPartCode, SPartLocation = s.SPartLocation, SPartSalePrice = s.SPartSalePrice.ToString(), ModelName = m.ModelName, SPartActive = s.SPartActive }).ToList(); 

    SParts_grid.ItemsSource = AllParts; 

    SParts_grid.Items.Refresh(); 
} 

ответ

3

Вы должны связывающим собственности, а не в поле.

Измените класс модели на следующий код:

public class PartsListObjects 
{ 
    public int partid {get; set; } 
    public string SPartName {get; set; } 
    public string SPartCode {get; set; } 
    public string SPartLocation {get; set; } 
    public bool SPartActive {get; set; } 
    public string ModelName {get; set; } 
    public string SPartSalePrice {get; set; } 
} 
+0

Спасибо! @kmatyaszek –

0

Установите свойство CanUserReorderColumns="false" в true в XAML коде DataGrid собственности

Смежные вопросы