private void ShowDynamicFlyout(object sender, RoutedEventArgs e) { var flyout = new DynamicFlyout { Header = "Dynamic flyout" }; // when the flyout is closed, remove it from the hosting FlyoutsControl RoutedEventHandler closingFinishedHandler = null; closingFinishedHandler = (o, args) => { flyout.ClosingFinished -= closingFinishedHandler; flyoutsControl.Items.Remove(flyout); }; flyout.ClosingFinished += closingFinishedHandler; flyoutsControl.Items.Add(flyout); flyout.IsOpen = true; }
private void ShowDynamicFlyout(object sender, RoutedEventArgs e) { var flyout = new DynamicFlyout { Header = "Dynamic flyout" }; // when the flyout is closed, remove it from the hosting FlyoutsControl RoutedEventHandler closingFinishedHandler = null; closingFinishedHandler = (o, args) => { flyout.ClosingFinished -= closingFinishedHandler; flyoutsControl.Items.Remove(flyout); }; flyout.ClosingFinished += closingFinishedHandler; flyoutsControl.Items.Add(flyout); // set IsOpen to true after the binding has happened Action a = () => flyout.IsOpen = true; Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, a); }