Not sure if I understand the situation correctly but you could define an event on the child window and subscribe that event on the parent window when yuo create the child.
Consider the following example:
Parent window XAML
<Window x:Class="CP_CS_WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CP_CS_WPF"
mc:Ignorable="d"
Title="MainWindow" Height="350"
Width="525">
<Grid>
<Button Content="Launch child" Click="Button_Click"/>
</Grid>
</Window>
Parent window code
using System;
using System.Windows;
namespace CP_CS_WPF
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Window1 window1 = new Window1();
window1.DataChanged += Window1_DataChanged;
window1.Show();
}
private void Window1_DataChanged(object sender, EventArgs e)
{
System.Windows.MessageBox.Show("Something has happened", "Parent");
}
}
}
Child window XAML
<Window x:Class="CP_CS_WPF.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CP_CS_WPF"
mc:Ignorable="d"
Title="Window1"
Height="300"
Width="300">
<Grid>
<Button Content="Something happens" Click="Button_Click" />
</Grid>
</Window>
Child window code
using System;
using System.Windows;
namespace CP_CS_WPF
{
public partial class Window1 : Window
{
public delegate void DataChangedEventHandler(object sender, EventArgs e);
public event DataChangedEventHandler DataChanged;
public Window1()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
DataChangedEventHandler handler = DataChanged;
if (handler != null)
{
handler(this, new EventArgs());
}
}
}
}