1) Самое главное, вы не должны вызывать логику БД из ваших окон / форм. Вы должны абстрагировать это в другой класс. Тогда ваш метод может вернуть наблюдаемую коллекцию.
Однако в вашем случае я предполагаю, что вы пытаетесь использовать вторичную форму для перезагрузки / загрузки коллекции, и вы хотите, чтобы она использовалась в вашей основной форме. Проблема в том, что вы создаете новый экземпляр формы, поэтому ваша коллекция заполняется, но не в основной форме, а в ее копии.
Есть несколько способов обойти это.
1) Сделайте метод статичным, а наблюдаемую коллекцию - статической, чтобы он обновлял один экземпляр.
2) Передайте дескриптор экземпляра вашей первичной формы во вторичную форму, чтобы вы могли повторно использовать экземпляр, который у вас уже есть. Это было бы предпочтительным, чтобы не создавать новые экземпляры повсюду.
В конструкторе второй формы вы можете передать экземпляр вашего основного окна, чтобы вы могли использовать его напрямую. Это должно решить вашу проблему.
ОБНОВЛЕНИЕ: Вот несколько примеров кода. В основном, есть много способов передать ссылку.
Вы можете сделать это так с помощью конструктора:
// This is the constructor for your second window
private Window _parentHandle;
public SecondWindow(Window obj)
{
this._parentHandle = obj;
}
Тогда из вашей основной формы, в которой есть метод, вы бы открыли это окно следующим образом.
SecondWindow w = new SecondWindow(this);
w.Show();
Теперь ваше второе окно имеет прямой дескриптор первого окна, поэтому вы можете вызывать свой метод для этой переменной, и он обновится.
Другим способом является использование общедоступного метода Setter во втором окне.
public Window ParentContext
{
get { return this._parentHandle; }
set { this._parentHandle = value; }
}
Тогда вы можете создать свой экземпляр формы следующим образом:
SecondWindow w = new SecondWindow(); // so just like normal
w.ParentContext = this; // set the instance to the calling form
w.Show();
Это основы. Этот тип сценария работает практически в любом сценарии, где вам нужно передать ссылку.
Надеюсь, это поможет.