1

データベースからのデータを表示するデータ グリッドがあります。データは外部キーを使用して 2 つのテーブルから取得されます。私が間違っているところを誰でも指摘できますか

        <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();
}
4

2 に答える 2

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; }
}
于 2013-09-15T17:26:05.420 に答える
0

Datagrid プロパティの xaml コードでプロパティCanUserReorderColumns="false"を設定しますtrue

于 2013-09-28T20:53:12.000 に答える