У меня есть форма с некоторыми текстовыми полями, ниже мой код:C# WinForm текстовое поле DataBind собственности
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 метода, как выше показывает , но никто не работает.
Необходим ввод здесь.
Спасибо!
Update:
Извините за не ясно, мой вопрос заключается в том, как правильно добиться привязок данных между текстовым полем и свойством, в этом случае свойство имеет тип клиента. И я ожидаю, что привязка данных обновит текстовое поле2 с помощью Customer.Name, когда я обновил свойство Customer формы.
Спасибо!
'И ваши на самом деле вопросы - это то, что .. ????' – MethodMan
Ужасно, если я не буду чист. Мой вопрос: как добиться привязки данных между текстовым полем и свойством объекта. :) –
Почему бы не использовать 'BindingList' и создать 2 отдельных. вы, вероятно, получаете одни и те же данные в обоих текстовых полях, если это так, то почему. .. в использовании 'BindingList' – MethodMan