1

私はいくつかのテキストボックスを含むフォームを持っています.以下は私のコードです:

public partial class Test : Form
{
    private readonly ICustomerBl _customerBl;
    private readonly BindingSource _bindingSource1;

    public Test(ICustomerBl customerBl)
    {
        _bindingSource1 = new BindingSource();

        _customerBl = customerBl;

        InitializeComponent();
    }

    public Customer Customer { get; set; }

    private void Test_Load(object sender, EventArgs e)
    {
        // Method 1
        textBox2.DataBindings.Add(new Binding("Text", Customer, "Name"));

        // Method 2
        textBox3.DataBindings.Add("Text", _bindingSource1, "Email", true, DataSourceUpdateMode.OnPropertyChanged);
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        if (_customerBl.Get(textBox1.Text) != null)
        {
            Customer = _customerBl.Get(textBox1.Text).First();
            _bindingSource1.Add(Customer);
        }
    }

Customer.cs

public class Customer : Entity
{
    public virtual string Id { get; set; }
    public virtual string Title { get; set; }
    public virtual string Name { get; set; }
    public virtual string Address1 { get; set; }
    public virtual string Address2 { get; set; }
    public virtual string Address3 { get; set; }
    public virtual string Phone { get; set; }
    public virtual string Email { get; set; }
    public virtual string JoinDate { get; set; }
    public virtual string Status { get; set; }
    public virtual string ContactPerson { get; set; }
    public virtual string TaxId { get; set; }
    public virtual double CreditLimit { get; set; }
    protected internal virtual IList<RentalAgreement> RentalAgreements { get; protected set; }
    protected internal virtual IList<RentalWithdrawal> RentalWithdrawals { get; protected set; }

    public virtual RentalAgreement GetActiveRental()
    {
        return RentalAgreements.FirstOrDefault(rental => rental.Status == "ACTIVE");
    }

    public virtual bool HasRentalAgreement()
    {
        return RentalAgreements.Count > 0;
    }

    public override string ToString()
    {
        return Name;
    }

上記のように2つの方法を使用しようとしましたが、どれも機能しません。

ここで入力が必要です。

ありがとう !

アップデート :

明確でなくて申し訳ありませんが、私の質問は、テキストボックスとプロパティの間でデータバインディングを正しく実現する方法です。この場合、プロパティのタイプは Customer です。また、フォームの Customer プロパティを更新したときに、データバインディングが textbox2 を Customer.Name で更新することを期待しています。

ありがとう !

4

1 に答える 1