Как включить на BindingNavigator свой AddNewItem - PullRequest
1 голос
/ 03 декабря 2011

Я пытаюсь привязать BindingNavigator к BindingSource. Это работает очень хорошо, но проблема в том, что желтый значок плюса отключен. Как я могу включить его?

Я создал вручную с кодом набор данных, tableadapters и источник привязки, но когда я связываю его с привязкой, он показывает записи, но не включает «Удалить» и «Добавить элемент».

Что я делаю не так?

Код из комментария:

Dim connstr As String = "Data Source=" + Application.StartupPath + "\Prueba.sdf"
Dim conn As New SqlCeConnection(connstr)
Dim cmd As New SqlCeCommand("SELECT * FROM datos", conn)
Dim inscmd As New SqlCeCommand("INSERT INTO datos VALUES (@nombre,@apellido,@id)", conn)
dt = New SqlCeDataAdapter(cmd)
dt.Fill(DataSet1, "datos")
dt.InsertCommand = inscmd
BindingSource1.DataSource = DataSet1
DataGridView1.DataSource = BindingSource1
DataGridView1.DataMember = "datos"
DataGridView1.Columns("id").Visible = False

Ответы [ 2 ]

1 голос
/ 03 декабря 2011

Так как вы не предоставили код, вы сильно постарались решить вашу проблему.

Вот пример, который работает.Примите новую форму, поместите на нее элементы управления TextBox и BindingNavigator.

Добавьте этот код:

Public Class Form1
  Private bs As New BindingSource
  Private ds As New DataSet
  Private dt As New DataTable

  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    dt.TableName = "English"
    dt.Columns.Add("Words")
    dt.Rows.Add("Hello")
    dt.Rows.Add("Good-Bye")
    ds.Tables.Add(dt)
    bs.DataSource = ds
    bs.DataMember = "English"
    TextBox1.DataBindings.Add("Text", bs, "Words")
    BindingNavigator1.BindingSource = bs
  End Sub
End Class

В TextBox должно быть слово "Hello".У BindingNavigator должно быть «1 из 2», плюс кнопки «Добавить» и «Удалить» должны быть включены и работать.

Если это не поможет решить проблему, вам придется опубликовать некоторый код наПомогите нам воспроизвести проблему.

0 голосов
/ 04 января 2014

Ради интереса я добавил 2-е текстовое поле в форму, 2-й столбец в таблице и заполнил два поля для обеих записей.

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    dt.TableName = "English"
    dt.Columns.Add("Words")
    dt.Columns.Add("Spanish")
    dt.Rows.Add("Hello", "Hola")
    dt.Rows.Add("Good-Bye", "Adios")
    ds.Tables.Add(dt)
    bs.DataSource = ds
    bs.DataMember = "English"
    TextBox1.DataBindings.Add("Text", bs, "Words")
    TextBox2.DataBindings.Add("Text", bs, "Spanish")
    BindingNavigator1.BindingSource = bs
End Sub
...