How to access instance of BL from parent window in child windows WPF?

Viewed 31

Well, I have an instance of my Logic class in MainWindow. There are buttons lead to other windows where I want to use Logic methods. Should I somehow use only one instance or create new one in each window? Just don't understand how it works.

Main Window

public Logic data;
public MainWindow()
{
    InitializeComponent();
    data = new Logic();
}
public void OpenAddWindow(object sender, RoutedEventArgs e)
{
   tForm win2 = new tForm();

    win2.ShowDialog();
}

ChildWindow

public Logic logic = ((MainWindow)App.Current.MainWindow).data;

public TForm()
{
    InitializeComponent();
}
public void first_ButtonClick(object sender, RoutedEventArgs e)
{
    logic.AddNew();

    this.Close();
}
1 Answers

Better to pass data instance to the child window when creating it..

MainWindow.xaml.cs

public Logic data;

public MainWindow()
{
    InitializeComponent();
    data = new Logic();
}

public void OpenAddWindow(object sender, RoutedEventArgs e)
{
    tForm win2 = new tForm(data);
    win2.ShowDialog();
|

TForm.xaml.cs

public Logic logic;

public TForm(Lojec logic)
{   
    this.logic = logic;
    InitializeComponent();
}
public void first_ButtonClick(object sender, RoutedEventArgs e)
{
    logic.AddNew();
    this.Close();
}
Related