私は、SQL CE、WPF、Entity Framework 3.5sp2およびiamを使用してPOSアプリケーションを開発しており、ユーザーが注文を入力するためのオーダーエントリコントロールとしてデータグリッドを使用しようとしています。 これをenitiy frmaeワークモデルにバインドするにはどうすればいいですか?abdは2通りの方法を探していますか?Entity FrameworkとWPF DataGridとの双方向データバインディングは可能ですか?
private void button1_Click(object sender, RoutedEventArgs e)
{
using (MasterEntities nwEntities = new MasterEntities())
{
var users = from d in nwEntities.Companies
select new CompanyRowModel{ CompanyId = d.CompanyId, CompanyName d.CompanyName, Place = d.Place }
listBox1.DataContext = users;
dataGrid1.DataContext = users;
}
}
public class CompanyRowModel
{
public int CompanyId { get; set; }
public string CompanyName { get; set; }
public string Place{ get; set; }
}
と私のXAMLのコードを編集この
<Grid>
<ListBox Name="listBox1" ItemsSource="{Binding}" />
<Button Content="Show " Name="button1" Click="button1_Click" />
<DataGrid AutoGenerateColumns="False" Name="dataGrid1" ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridTextColumn Header=" ID" Binding="{Binding CompanyId}"/>
<DataGridTextColumn Header="Company Name" Binding="{Binding CompanyName}"/>
<DataGridTextColumn Header="Place" Binding="{Binding Place}" />
</DataGrid.Columns>
</DataGrid>
<Button Content="Save" Name="button2" VerticalAlignment="Bottom" Click="button2_Click" />
</Grid>
のようになります:
私は@vorrtexで示す変更を行った、しかし、その後、私はchagesを保存するために別のボタンを追加し、ボタンでイベントをクリックしてコードを追加しましたが、エラーが表示されます。
private void button2_Click(object sender, RoutedEventArgs e)
{
nwEntities.SaveChanges();
}
また、別の方法があります。「var users = nwEntities.Companies.ToList()」と書いてください。しかし、テーブルに大きなサイズのフィールドがある場合、この解決方法はパフォーマンスの問題を引き起こします。 – vorrtex