レコードを追加、更新、または削除した後にバインディングソースをリフレッシュする方法があるかどうかを知る必要がありました。レコードを削除すると、拘束力のあるナビゲータツールバーの適切なレコード数。追加、更新、または削除後のバインディングソースのリフレッシュ
現時点で銀行を追加するための給与計算アプリケーションモジュールを作成しています。私は2つの連続したレコードを追加することはできません(一度に1つずつ追加することができます、私のアプリを閉じてから別のものを追加することができます)。私のアプリケーションは、私が
private void BankMaintenanceForm_Load(object sender, EventArgs e)
{
bankMasterBindingSource.DataSource = Program.Kernel.Get<IBankMasterService>().GetAllBankMasters();
}
私もこのアプリケーションにNinjectのアドオンを使用していますを持っているSAPビジネスに私のBankMasterForm.cs 1.
を統合されている
IBankMasterService.csに私のコード(インターフェース)形式:
:namespace Payroll.BLL
{
public interface IBankMasterService
{
IEnumerable<BankMaster> GetAllBankMasters();
BankMaster GetBankMaster(string code);
void AddBankMaster(BankMaster bankMaster);
void UpdateBankMaster(BankMaster bankMaster);
void DeleteBankMaster(BankMaster bankMaster);
string GenerateSAPCode();
}
}
は、私はまた、BankMasterService.csクラスを持っています
namespace Payroll.BLL
{
public class BankMasterService : IBankMasterService
{
private readonly IBankMasterRepository _bankMasterRepository;
public BankMasterService(
IBankMasterRepository bankMasterRepository)
{
Guard.AgainstNullParameter(bankMasterRepository, "bankMasterRepository");
_bankMasterRepository = bankMasterRepository;
}
public IEnumerable<BankMaster> GetAllBankMasters()
{
return _bankMasterRepository.SelectAll();
}
public BankMaster GetBankMaster(string code)
{
var rulesException = new RulesException<BankMaster>();
// Business rule: Answer Id cannot be less than 1
if (!code.HasValue())
rulesException.ErrorFor(x => x.Code, "Code cannot be null");
if (rulesException.Errors.Any()) throw rulesException;
return _bankMasterRepository.GetEntity(code);
}
public void AddBankMaster(BankMaster bankMaster)
{
// Business rule: 0
var errors = DataAnnotationsValidationRunner.GetErrors(bankMaster);
var rulesException = new RulesException();
rulesException.ErrorsForModel(errors);
// Other validation rules
if (rulesException.Errors.Any()) throw rulesException;
// Save to database
_bankMasterRepository.Insert(bankMaster);
}
public void UpdateBankMaster(BankMaster bankMaster)
{
// Business rule: 0
var errors = DataAnnotationsValidationRunner.GetErrors(bankMaster);
var rulesException = new RulesException();
rulesException.ErrorsForModel(errors);
// Other validation rules
if (rulesException.Errors.Any()) throw rulesException;
// Save to database
_bankMasterRepository.Update(bankMaster);
}
public void DeleteBankMaster(BankMaster bankMaster)
{
var bm = GetBankMaster(bankMaster.Code);
if (bm != null)
{
// Delete from database
_bankMasterRepository.Delete(bm);
}
}
public string GenerateSAPCode()
{
var result = default(long);
var codesList = from b in GetAllBankMasters()
select new { Code = long.Parse(b.Code) };
codesList = codesList.OrderBy(x => x.Code);
var lastRecord = codesList.LastOrDefault();
if (lastRecord != null)
result = lastRecord.Code + 1;
return result.ToString();
}
}
}
たとえば私のBankMasterForm.csフォームに機能を削除するには、次のとおりです。削除後にリフレッシュし
bankMasterBindingSource.DataSource = Program.Kernel.Get<IBankMasterService>().GetAllBankMasters();
:
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("Are You Sure You Want To Delete This Record?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
// Get service instance
var bankMasterService = Program.Kernel.Get<IBankMasterService>();
var bankMasterDelete =
new BankMaster
{
Code = txt_code.Text
};
// Delete record
bankMasterService.DeleteBankMaster(bankMasterDelete);
//clear textfields after input
txt_code.Text = string.Empty;
txt_bank_code.Text = string.Empty;
txt_bank_name.Text = string.Empty;
cb_bank_type.Text = null;
txt_address1.Text = string.Empty;
txt_address2.Text = string.Empty;
txt_comments.Text = string.Empty;
MessageBox.Show("Bank Details Deleted Successfully");
}
}
私の質問は、私は私のバインディングソース、すなわちを得るのですか、です例えば?
ご協力いただきますようお願い申し上げます。
これはのWinFormsアプリケーション、またはいくつかの他のUIツールキットですによって「見る」ことができますか?この情報は、質問に追加する必要があり、場合によってはタグに追加する必要があります。 –
@Merlyn Morgan-Graham。それは、SAP Business 1のアドオンです - Windowsフォームアプリケーション –