新しいWPFプロジェクトを開始し、メインウィンドウにボタンがあります。 1(tbTax命名)てtextBox 1 [追加]ボタン(のDBGridを命名) 1のDataGrid WPFエンティティフレームワークのデータグリッドリフレッシュ
は、私がデータソース]タブに移動して、データグリッドを得て、DRAG:私はそれをクリックすると、私は次のように表示される新しいウィンドウを表示します/ DROPフォーム/ウィンドウ上のテーブルから削除します。 私は、アプリケーションを実行すると、すべての計画通りに動作します。 2番目のウィンドウでは、データベーステーブルのすべてのレコードをグリッドに表示します。NOW: 「追加ボタン」の追加コードを実行しました。ユーザがtextbox(tbTax)にテキストを入力し、[追加]ボタンをクリックしたときに、次のコードは、次のとおりです。
using (MyEntities context = new MyEntities())
{
TAX tax = new TAX();
tax.TAX1 = decimal.Parse(tbTax.Text);
context.TAXs.Add(tva);
context.SaveChanges();
tbTax.Text = "";
dbGrid.Items.Refresh();
}
だから、それは明らかである:私は、エンティティフレームワークを介してデータベーステーブルに項目を追加します。 しかし、コードの最後にリフレッシュ部分を追加しても、グリッドは更新されません。したがって、ウィンドウを終了して再度表示する場合にのみ、私は今追加したばかりの新しいアイテムを見ることができます。ドラッグ後
EDIT /私はこれで終わったドロップ:また
--XAML--
<DataGrid x:Name="tAXDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" Margin="10,157,10,35" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn x:Name="tAXColumn1" Binding="{Binding TAX}" Header="TAX" Width="SizeToHeader"/>
</DataGrid.Columns>
</DataGrid>
--XAML.cs--
private void Window_Loaded(object sender, RoutedEventArgs e)
{
TestXXX.ArtDataSet artDataSet = ((TestXXX.ArtDataSet)(this.FindResource("artDataSet")));
// Load data into the table TAX. You can modify this code as needed.
TestXXX.ArtDataSetTableAdapters.TAXTableAdapter artDataSetTAXTableAdapter = new TestXXX.ArtDataSetTableAdapters.TAXTableAdapter();
artDataSetTAXTableAdapter.Fill(artDataSet.TAX);
System.Windows.Data.CollectionViewSource tAXViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("tAXViewSource")));
tAXViewSource.View.MoveCurrentToFirst();
}
、私のコンテキストは別に宣言されます
namespace TestXXX
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class ArtEntities : DbContext
{
public ArtEntities()
: base("name=ArtEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<BOOK> BOOKs { get; set; }
public DbSet<TAX> TAXs { get; set; }
}
}
とTAXクラスはこれで間違っている何
namespace TestXXX
{
using System;
using System.Collections.Generic;
public partial class TAX
{
public TAX()
{
this.BOOKs = new HashSet<BOOK>();
}
public int ID { get; set; }
public Nullable<decimal> TAX1 { get; set; }
public virtual ICollection<BOOK> BOOKs { get; set; }
}
}
のですか?どうすれば修正できますか?
https://msdn.microsoft.com/en-us/data/jj574514.aspx – StepUp