【发布时间】:2016-07-06 03:39:21
【问题描述】:
我开始了一个新的 WPF 项目,在主窗口上我有一个按钮。当我单击它时,我会显示一个新窗口,显示如下: 1 个文本框(名为 tbTax) 1 添加按钮 1个DataGrid(命名为dbGrid)
我通过转到 DataSources 选项卡获得了 DataGrid,然后从那里 DRAG/DROP 在窗体/窗口上的一个表。 当我运行该应用程序时,一切都按计划进行。在第二个窗口中,我在网格中看到数据库表中的所有记录。
现在: 我为“添加按钮”做了添加代码。所以当用户在文本框(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();
}
所以应该很明显了:我通过实体框架向数据库表中添加了一项。 但即使我在代码末尾添加了刷新部分......网格也不会刷新。所以只有当我退出窗口并重新显示它时,我才能看到我刚刚添加的新项目。
编辑 在拖放之后,我最终得到了这个:
--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; }
}
}
这有什么问题?我该如何解决?
【问题讨论】:
标签: c# wpf entity-framework datagrid