/// <summary>
        ///     Attempts to track the value change.
        /// </summary>
        public IDisposable TryObserve(object source, IEventListener listener)
        {
#if WINDOWS_PHONE
            var frameworkElement = source as FrameworkElement;
            if (frameworkElement != null && _path == AttachedMemberConstants.DataContext)
            {
                return(DataContextChangedHelper.Listen(frameworkElement, listener));
            }
#endif
            if (_changePropertyMember == null)
#if NETFX_CORE || WINDOWSCOMMON || WINDOWS_PHONE
            { return(new DependencyPropertyListener(source, _path, listener)); }
#else
            { return(new DependencyPropertyListener(source, _dependencyProperty, listener)); }
#endif
            return(_changePropertyMember.SetValue(source, new object[] { listener }) as IDisposable);
        }
        public LearningGame()
        {
            this.InitializeComponent();

            DataContextChangedHelper.AddDataContextChangedHandler(flipControl, FlipControl_DataContextChanged);
        }