Index: Native/Src/Packages/Samples/Buttons/Src/MainWindow.xaml.cpp
===================================================================
--- Native/Src/Packages/Samples/Buttons/Src/MainWindow.xaml.cpp	(revision 172871)
+++ Native/Src/Packages/Samples/Buttons/Src/MainWindow.xaml.cpp	(working copy)
@@ -8,6 +8,7 @@
 #include "ViewModel.h"
 
 #include <NsGui/IntegrationAPI.h>
+#include <NsGui/Keyboard.h>
 #include <NsGui/Uri.h>
 #include <NsCore/ReflectionImplementEmpty.h>
 
@@ -20,6 +21,8 @@
 MainWindow::MainWindow()
 {
     Initialized() += MakeDelegate(this, &MainWindow::OnInitialized);
+    DataContextChanged() += MakeDelegate(this, &MainWindow::DelegateFunc1);
+    DataContextChanged() += MakeDelegate(this, &MainWindow::DelegateFunc2);
     InitializeComponent();
 }
 
@@ -36,6 +39,19 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
+void MainWindow::DelegateFunc1(BaseComponent*, const DependencyPropertyChangedEventArgs&)
+{   
+    // As a result of calling the following method, DelegateImpl<Ret (Args...)>::MultiDelegate::~MultiDelegate() is called
+    GetKeyboard()->Focus(this);
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+void MainWindow::DelegateFunc2(BaseComponent*, const DependencyPropertyChangedEventArgs&)
+{
+    // DelegateImpl<Ret (Args...)>::MultiDelegate::mInvoker is destroyed before this delegate is called
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
 NS_BEGIN_COLD_REGION
 
 NS_IMPLEMENT_REFLECTION_(Buttons::MainWindow, "Buttons.MainWindow")
Index: Native/Src/Packages/Samples/Buttons/Src/MainWindow.xaml.h
===================================================================
--- Native/Src/Packages/Samples/Buttons/Src/MainWindow.xaml.h	(revision 172871)
+++ Native/Src/Packages/Samples/Buttons/Src/MainWindow.xaml.h	(working copy)
@@ -26,6 +26,9 @@
     void InitializeComponent();
     void OnInitialized(BaseComponent*, const Noesis::EventArgs&);
 
+    void DelegateFunc1(BaseComponent*, const Noesis::DependencyPropertyChangedEventArgs&);
+    void DelegateFunc2(BaseComponent*, const Noesis::DependencyPropertyChangedEventArgs&);
+
 private:
     NS_DECLARE_REFLECTION(MainWindow, Window)
 };
