我有一个dataGridView当我点击任何行打开表单来更新行数据,但结束更新后,更新表单closures,但dataGridView数据不更新 我怎样才能做到这一点 ?
我想在一个WinForms应用程序的DataGridView上显示相关实体的几个属性。 对我来说这似乎很普通,但是我很难find例子。 这是一个订单input操作。 OrderSheet数据,订单的ID和提货date,然后是网格中的订单项(以下模型中的OrderSheetItems)。 订单的lineitems具有基于ProductId的导航属性Product。 我可以使用DataGridViewComboBoxColumn与ProductId作为ValueMember和另一个字段作为DisplayMember。 但是我想在其他栏目中包含更多的数据,大小,颜色,材质等 这里是加载数据的代码 try { _context.OrderSheets.Include(o => o.OrderSheetItems.Select(i => i.Product)).Load(); orderSheetBindingSource.DataSource = _context.OrderSheets.Local.ToBindingList(); } catch (Exception ex)… ProductId是在一个单独的列中进行实验,稍后将是combobox。 那么是否有办法将其他列绑定到OrderSheetItem的Product navigation属性中的数据,还是必须处理产品ID上的CellValueChanged以物理设置其他列中的数据? 如果有一种方法来绑定列,那么会通过OnLoad中的代码或网格视图列devise器中的某个地方? TIA,Mike
我有一个网格中的数据,目前显示如下: —————— |Hd1| Value | —————— |A | A1 | —————— |A | A2 | —————— |A | A3 | —————— |A | A4 | —————— |B | B1 | —————— |B | B2 | —————— |B | B3 | —————— |B | B4 | —————— |B | B5 | —————— |C | C1 | […]
我尝试通过在文本框中input文本,然后使用SQL查询数据库,然后在datagridview中显示结果来search数据库中的特定值。 这里是代码: Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged Connection.Open() Dim dataTable As New DataTable Dim dataSet As New DataSet dataSet.Tables.Add(dataTable) Dim dataAdapter As New OleDbDataAdapter Dim SQLQuery As String SQLQuery = <sql> SELECT * FROM Students WHERE StudentFirstName = @StudentFirstName </sql> .Value dataAdapter = New OleDbDataAdapter(SQLQuery, Connection) dataAdapter.SelectCommand.Parameters.Add("@StudentFirstName", SqlDbType.Text).Value […]
我有一个包含项目和价格的Dictionary 。 这些项目是独一无二的,但在应用程序的整个生命周期中慢慢地被添加和更新(也就是说,我事先不知道项目string)。 我想将这个结构绑定到一个DataGridView,所以我可以在我的窗体上显示更新,如下所示: Dictionary<string, double> _priceData = new Dictionary<string, double>(); BindingSource _bindingSource = new BindingSource(); dataGridView1.DataSource = _bindingSource; _bindingSource.DataSource = _priceData; 但是不能,因为Dictionary没有实现IList (或者IListSource , IBindingList或者IBindingListView )。 有没有办法做到这一点? 我需要保持一个唯一的项目列表,但也更新现有项目的价格,所以一个Dictionary是我想的理想的数据结构,但我无法find一种方法来显示我的表单上的数据。 更新: 下面的Marc的build议很好地工作,但我仍然不知道如何在执行过程中更新DataGridView。 我有一个类级variables: private DictionaryBindingList<string, decimal> bList; 然后在Main()实例化: bList = new DictionaryBindingList<string,decimal>(prices); dgv.DataSource = bList; 然后在程序执行过程中,如果新的条目被添加到字典中: prices.Add("foobar", 234.56M); bList.ResetBindings(); 我想这会刷新DataGridView。 为什么不?
有人可以描述两者之间的区别是什么我的项目。 目前,我有一个List<MyClass> ,并将BindingSource和一个DataGridView设置为BindingSource。 我已经实现了IEditableObject因此当调用CancelEdit时,我将对象还原为Memberwise.Clone() 将我的列表更改为一个BindingList解决任何这一点,使用BindingList的优点是什么?
我有一堂课 class Person{ public string Name {get; set;} public string Surname {get; set;} } 和我添加一些项目的List<Person> 。 该列表绑定到我的DataGridView 。 List<Person> persons = new List<Person>(); persons.Add(new Person(){Name="Joe", Surname="Black"}); persons.Add(new Person(){Name="Misha", Surname="Kozlov"}); myGrid.DataSource = persons; 没有问题。 myGrid显示两行,但是当我将新项目添加到我的persons列表中时, myGrid不显示新的更新列表。 它只显示我之前添加的两行。 那么问题是什么? 每次重新装订都很好。 但是,当我每次将DataTable绑定到网格时,我对DataTable进行了一些更改,没有任何需要重新绑定myGrid 。 如何解决它而无需每次重新绑定?
我在.NET Winform应用程序中有一个datagridview。 我想右键单击并popup一个菜单。 然后我想select复制,validation等东西 我如何让A)一个菜单popupB)find哪一行是右键单击。 我知道我可以使用selectedIndex,但我应该能够右键单击而不改变select什么? 现在我可以使用选定的索引,但是如果有一种方法来获取数据而不改变select的那么这将是有用的。
我正在Visual Studio 2010 Professional和Access 2010中创build一个库应用程序。我将Access数据库绑定到Visual Studio。 当我填写的字段,然后单击提交我可以看到DataGridView中的新logging,但是当我closures应用程序新logging不保存,我必须再次inputlogging。 有人可以帮我知道为什么当我通过应用程序input新logging时,logging不会保存在数据库中?
我似乎在圈子里跑来跑去,在过去的几个小时里一直在这样做。 我想从一个string数组中填充一个datagridview。 我读过它不可能直接,我需要创build一个自定义types,该string作为公共属性。 所以我上了一堂课: public class FileName { private string _value; public FileName(string pValue) { _value = pValue; } public string Value { get { return _value; } set { _value = value; } } } 这是容器类,它只是一个具有string值的属性。 我现在想要的就是那个string出现在datagridview中,当我把它的数据源绑定到一个List。 我也有这个方法,BindGrid(),我想填充datagridview。 这里是: private void BindGrid() { gvFilesOnServer.AutoGenerateColumns = false; //create the column programatically DataGridViewTextBoxColumn colFileName = new […]