私は Entity Framework を使用してシステムを作成しています。オブジェクト プロパティを にバインドしましたDataGrid
。すべてのフィールドにデータが表示されましたが、プロパティだけがFornecedor
他のクラスであり、最初は表示できません。開いたときに表示されます。 New Registerウィンドウを閉じて閉じます。コンストラクターとNewRegister.Closedで同じメソッドを使用してリストを表示するため、なぜこれが行われるのかわかりません。
public class Produto
{
public int Id { get; set; }
public string Codigo { get; set; }
public string Linha { get; set; }
public int Comprimento { get; set; }
public int Largura { get; set; }
public string Cor { get; set; }
public string CorPe { get; set; }
public int Gaveta { get; set; }
public Fornecedor Fornecedor { get; set; } // <- Fornecedor is other class
public byte[] Foto { get; set; }
public int Estoque { get; set; }
public float ValorCompra { get; set; }
public float ValorVenda { get; set; }
}
Fornecedor クラスはこちら:
public class Fornecedor
{
public int Id { get; set; }
public string Nome { get; set; }
public string Cidade { get; set; }
public string Estado { get; set; }
public string Email1 { get; set; }
public string Email2 { get; set; }
public string Email3 { get; set; }
public string Telefone1 { get; set; }
public string Telefone2 { get; set; }
public string Telefone3 { get; set; }
}
だから、私はDataContext
自分のウィンドウに設定Binding
し、DataGridTextColumns
public PageMesa()
{
InitializeComponent();
ShowList();
}
private void ShowList()
{
listMesa.ItemsSource = db.Mesas.ToList();
}
private void NewCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
MesaEditar NewRegister = new MesaEditar();
NewRegister.Closed += (s, arg) => { ShowList(); };
NewRegister.ShowDialog();
}
私のデータグリッド
<DataGrid Name="listMesa" Grid.Row="1" Margin="10,0" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Id}" Width="1*" />
<DataGridTextColumn Header="Codigo" Binding="{Binding Codigo}" Width="2*" />
<DataGridTextColumn Header="Linha" Binding="{Binding Linha}" Width="2*" />
<DataGridTextColumn Header="Comprimento" Binding="{Binding Comprimento}" Width="3*" />
<DataGridTextColumn Header="Largura" Binding="{Binding Largura}" Width="3*" />
<DataGridTextColumn Header="Cor" Width="2*">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="{Binding Cor}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Cor do pé" Binding="{Binding CorPe}" Width="4*" />
<DataGridTextColumn Header="Gaveta" Binding="{Binding Gaveta}" Width="2*" />
<DataGridTextColumn Header="Fornecedor" Binding="{Binding Fornecedor.Nome}" Width="4*" />
<DataGridTextColumn Header="Estoque" Binding="{Binding Estoque}" Width="2*" />
<DataGridTextColumn Header="Valor da compra" Binding="{Binding ValorCompra, StringFormat=R$0.00}" Width="4*" />
<DataGridTextColumn Header="Valor da venda" Binding="{Binding ValorVenda, StringFormat=R$0.00}" Width="4*" />
</DataGrid.Columns>
</DataGrid>
なぜこれが起こるのですか?表現が下手で申し訳ありません。この問題をどのように表現すればよいかわかりません。質問はすべて私に聞いてください