Mam formularz przechwytywania dla zamówienia na roboty i ma on kontrolkę CustomerBindingSource
i WorksOrderBindingSource
. Większość pól edycji jest związanych z WorksOrderBindingSource
, z ComboBox, którego lista jest powiązana z CustomerBindingSource
, a jej SelectedValue
jest związana z polem CustomerId
w WorksOrderBindingSource
. Wszystko to jest bardzo rutynowe i standardowe, nie ma tu nic zabawnego.Jak ustawić bieżący rekord źródła BindingSource na wartość null?
Następnie mam również pola pól tekstowych, w których używam do pokazania właściwości aktualnie wybranego klienta, dla aktualnie edytowanych zleceń robót. Powiązałem te pola również z CustomerBindingSource
. Po wybraniu klienta te pola pokazują właściwości tego klienta zgodnie z oczekiwaniami.
Mój problem polega na tym, że chcę użyć formularza do przechwycenia nowego zamówienia na roboty. Wywołuję nowy obiekt WorksOrder
, z CustomerId == null
i wiążę go z WorksOrderBindingSource
. Nie mam obiektu w CustomerBindingSource
z Id == null
, więc, zgodnie z oczekiwaniami, rozwijana lista rozwijana jest pusta, ale właściwość CustomerBindingSource.Current
wskazuje na pierwszy obiekt klienta w tym źródle danych. Połączone przez klienta pola wyświetlania pokazują wartości dla tego klienta, podczas gdy żaden klient nie został jeszcze wybrany.
Jedyne obejście tego problemu wydaje mi się nieporęczne. Mam w nim dwa wiążące typowane przez klienta źródła, jeden dla wybranego klienta i zapełnić pola wyświetlania klienta, a drugi tylko dla zapełnienia listy odbiorców. Następnie muszę obsłużyć zdarzenie selekcji i tylko wtedy, gdy wybrany jest klient, znajdź go w źródle powiązania dla pól wyświetlania, a jeśli nie jest on wybrany, ustaw źródło danych dla pól wyświetlania na wartość null. To strasznie niezdarne. Czy istnieje inny sposób osiągnięcia tego, czego chcę?
Dlaczego nie dodać elementu "proszę wybrać klient" do źródła wiążącego? – Bijan
Co zmusić użytkownika do zapisania bieżących zmian, aby prawidłowy identyfikator klienta został przypisany do urządzenia NewRow –