标签: bindingsource

为什么DataBinding第二次无效?

我更改BindingSource的数据源时得到的错误

"数据绑定找不到适合所有绑定行的行,适合所有绑定"

        this.RemoveAllBindings(); // My work-around for the meantime

        bdsOrder.DataSource = _ds.Tables["orders"]; // errors here on second time around(first time is blank datatable, second time is when i open existing record, then it errors), dataset comes from Remoting
        bdsOrderDetail.DataSource = _ds.Tables["order_detail"];

        bdsPhoto.DataSource = _ds.Tables["order_photo"];
        bdnPhoto.BindingSource = bdsPhoto;
Run Code Online (Sandbox Code Playgroud)

我的Helper扩展方法解决了困扰"数据绑定无法找到行......"的错误.

namespace MycComponentExtension
{
    public static class Helper
    {
        public static void RemoveAllBindings(this Form form)
        {
            RemoveAllBindings((Control)form);
        }

        private static void RemoveAllBindings(this Control root)
        {
            foreach (Control c in root.Controls)
            {
                if (c.Controls.Count …
Run Code Online (Sandbox Code Playgroud)

c# data-binding datasource bindingsource winforms

5
推荐指数
1
解决办法
2186
查看次数

带有正则表达式的.NET BindingSource.Filter

我使用BindingSource.Filter只列出数据源的某些元素.特别是我这样使用它很多:

m_bindingSourceTAnimation.Filter = "Name LIKE '" + FilterText + "'";
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如果以某种方式可以使用带有这些过滤器的正则表达式.

我特别需要多个通配符(*)字符

*hello*world*
Run Code Online (Sandbox Code Playgroud)

谢谢!

.net c# regex bindingsource

5
推荐指数
2
解决办法
1万
查看次数

为什么Browsable属性使属性不可绑定?

我正在尝试使用System.Windows.Forms.PropertyGrid.

要使该属性在此网格中不可见,应使用BrowsableAttributeset to false.但添加此属性会使属性无法绑定.

例如:创建一个新的Windows窗体项目,拖放TextBoxPropertyGridForm1.使用下面的代码,宽度TextBox不会被绑定到Data.Width:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        Data data = new Data();
        data.Text = "qwe";
        data.Width = 500;

        BindingSource bindingSource = new BindingSource();
        bindingSource.Add(data);

        textBox1.DataBindings.Add("Text", bindingSource, "Text", true,
            DataSourceUpdateMode.OnPropertyChanged);
        textBox1.DataBindings.Add("Width", bindingSource, "Width", true,
            DataSourceUpdateMode.OnPropertyChanged);

        propertyGrid1.SelectedObject = data;
    }
}
Run Code Online (Sandbox Code Playgroud)

数据类的代码是:

public class Data : IBindableComponent
{
    public event EventHandler TextChanged;
    private string _Text;
    [Browsable(true)]
    public …
Run Code Online (Sandbox Code Playgroud)

.net c# data-binding bindingsource winforms

5
推荐指数
1
解决办法
4141
查看次数

C#/ .NET:在BindingNavigator中移动到所需的项目

我正在使用这样的BindingNavigator让用户浏览BindingSource的数据记录.如何通过程序将显示的页面更改为所需的页码?

我已经将PositionItem设置为所需的页码,但这只会更改显示的页码并且不会移动到此页面.

我确定这并不困难,但我现在正在寻找解决方案一个小时.所以我现在问你们...

.net c# data-binding bindingsource winforms

5
推荐指数
1
解决办法
5902
查看次数

使用BindingSource(Of CustomClassObjects)进行DataGridView过滤

我想过滤我的DataGridView数据.我的DataGridView的DataSource绑定到了BindingSource.BindingSource包含我clsBillHeader班级中的对象列表.

这是第一段代码:

Dim bSource As New BindingSource
bSource.DataSource = clsBillHeader.GetAll()
dgvBills.DataSource = bSource
bSource.Filter = "JobNumber Like '100%'" //Filter doesn't actually work
Run Code Online (Sandbox Code Playgroud)

得到所有()

Public Shared Function GetAll() As List(Of clsBillHeader)
    Dim mycn As New SqlConnection(connection)
    Dim mycmd As New SqlCommand("SELECT * FROM Headers", mycn)
    mycn.Open()
    Dim myreader As SqlDataReader = mycmd.ExecuteReader
    Dim myList As New List(Of clsBillHeader)
    While myreader.Read
        Dim item As New clsBillHeader()
        SetByReader(myreader, item) //Sets all values correctly (such as forein keys)
        myList.Add(item)
    End …
Run Code Online (Sandbox Code Playgroud)

c# vb.net datagridview bindinglist bindingsource

5
推荐指数
1
解决办法
2万
查看次数

ResetBindings()不会更新BindingSource

我有问题的更新DataSourceDataGridView在WindowsForms应用程序.

我已经DataGridView填充了List我自己班级的数据Skoleni.

private List<Skoleni> setrideneSkoleni; //list of objects
Run Code Online (Sandbox Code Playgroud)

在MainForm()方法中,我调用以下内容:

 bindingDwgSkoleni = new BindingSource(); //create bindingsource
 bindingDwgSkoleni.DataSource = setrideneSkoleni; //set datasource for bindingsource
 dgwSkoleni.DataSource = bindingDwgSkoleni; // set datasource for datagridview
Run Code Online (Sandbox Code Playgroud)

哪个DataSource适用于BindingSourceDataGridView.

然后我以setrideneSkoleni另外的形式添加项目,button_Click方法包含:

setrideneSkoleni.Update(); // updates setrideneSkoleni
bindingDwgSkoleni.ResetBindings(false); //should update bindingSource, but DOES NOT
Run Code Online (Sandbox Code Playgroud)

变量setrideneSkoleni已更新(项目已添加),但BindingSource未更新(在调试中检查 - 列表仍包含相同的项目).

我不能简单地将DataGridView的DataSource设置为null而不是新列表,因为它会破坏格式化(隐藏列变得可见,排序被取消),我必须使用BindingSource来保持配置.

任何人都可以建议我如何解决这个问题?

谢谢

c# bindingsource winforms

5
推荐指数
1
解决办法
3735
查看次数

Bindingsource多次调用控件的value属性?

我有一个简单的DTO类,我将其设置为窗体上绑定源的数据源.

表单包含具有Value属性的自定义控件.这是属性:

[Browsable(false)]
[Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]
public virtual T Value
{
    get { return this.value; }
    set { this.value = value; }
}
Run Code Online (Sandbox Code Playgroud)

当控件绑定到bindingsource时,setter被调用6次.当控件未绑定时,setter仅被调用2次

在这两种情况下,第一次调用是因为设计器代码有一行:

mycontrol.Value = null;
Run Code Online (Sandbox Code Playgroud)

最后一次调用是因为我设置了一个值.所以第一次和最后一次通话都是正常的.但是当绑定控件时,为什么setter被称为额外4次?

c# data-binding bindingsource winforms

5
推荐指数
0
解决办法
107
查看次数

DataGridView和List <>的DataBinding与BindingSource

我试图弄清楚数据绑定BindingSource应该如何工作我希望DataGridView用一个List<>更新列表的内容填充.

List当我检查调试器时,我可以看到增长并验证它是否被填充.我认为BindingSourceList改变时会发生一个事件.但没有一个是可用的.如何更改基础列表时收到通知?

我按照说明操作,并提供以下测试代码:

    Data d;
    BindingSource bs;

    public Form1()
    {
        InitializeComponent();
        bs = new BindingSource();
        d = new Data();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        bs.DataSourceChanged += new EventHandler(bs_DataSourceChanged);
        bs.ListChanged += new ListChangedEventHandler(bs_ListChanged);
        bs.DataMemberChanged += new EventHandler(bs_DataMemberChanged);
        bs.CurrentChanged += new EventHandler(bs_CurrentChanged);
        bs.CurrentItemChanged += new EventHandler(bs_CurrentItemChanged);

        bs.DataSource = d.list;
        dataGridView1.DataSource = bs;
    }
    // ... all the handling methods caught with a break point in VS.

    private void …
Run Code Online (Sandbox Code Playgroud)

.net c# data-binding bindingsource

4
推荐指数
1
解决办法
2万
查看次数

BindingSource.Find抛出NotSupportedException(DataSource是BindingList <T>)

BindingSource有一个BindingList<Foo>附加的数据源.我想用合作BindingSourceFind方法来查找的元素.但是,NotSupportedException当我执行以下操作时会抛出a ,即使我的数据源确实实现了IBindingList(并且MSDN中没有记录此类异常):

int pos = bindingSource1.Find("Bar", 5);
Run Code Online (Sandbox Code Playgroud)

我在下面附上了一个简短的例子(a ListBox,a Button和a BindingSource).有人可以帮我Find调用吗?

public partial class Form1 : Form
{
    public Form1() { InitializeComponent(); }

    private void Form1_Load(object sender, EventArgs e)
    {
        var src = new BindingList<Foo>();
        for(int i = 0; i < 10; i++)
        {
            src.Add(new Foo(i));
        }

        bindingSource1.DataSource = src;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int pos = bindingSource1.Find("Bar", …
Run Code Online (Sandbox Code Playgroud)

.net c# data-binding bindingsource winforms

4
推荐指数
2
解决办法
8601
查看次数

图片数据绑定到图片框

我试图通过两种方法绑定数据集“data_set”中数据表“申请人详细信息”中“申请人图像”列中的图像。但是当我运行表单应用程序时,我看不到图片框“imgusr”中显示的图像。我的绑定源名称是“bindSource”。

假设 data_set 正确检索了所有内容,图像未加载到图片框“imgusr”中可能有什么问题??

此外,sizeMode 的图片框属性为“缩放”。

    private void Update_Load(object sender, EventArgs e){
        data_set = blobj.srcforVU();
        bindSource.DataSource = data_set;
        bindSource.DataMember = "Applicant's Details";
        lbidvalue.DataBindings.Add(new Binding("Text", bindSource, "Applicant's ID", false));

        //method 1
        //Binding binding = new Binding("Image", bindSource, "Applicant's Image", true, DataSourceUpdateMode.OnPropertyChanged);
        //binding.Format += new ConvertEventHandler(binding_Format);
        //imgusr.DataBindings.Add(binding);
        //method 2
        imgusr.DataBindings.Add(new Binding("Image", bindSource, "Applicant's Image", true));

        tbfname.DataBindings.Add(new Binding("Text", bindSource, "First Name", true));
        tblname.DataBindings.Add(new Binding("Text", bindSource, "Last Name", true));
        tbgender.DataBindings.Add(new Binding("Text", bindSource, "Gender", true));
        tbbdate.DataBindings.Add(new Binding("Text", bindSource, "Birth Date", true));
        tbmob.DataBindings.Add(new Binding("Text", bindSource, "Mobile …
Run Code Online (Sandbox Code Playgroud)

.net c# data-binding bindingsource winforms

4
推荐指数
1
解决办法
7632
查看次数