Catel.MVVM.Providers.UserControlLogic.OnTargetViewDataContextChanged C# (CSharp) 메소드

OnTargetViewDataContextChanged() 공개 메소드

Called when the DataContext property of the TargetView has changed.
public OnTargetViewDataContextChanged ( object sender, Catel e ) : void
sender object The sender.
e Catel The instance containing the event data.
리턴 void
        public override async void OnTargetViewDataContextChanged(object sender, Catel.MVVM.Views.DataContextChangedEventArgs e)
        {
            if (IsCurrentDataContext(e))
            {
                return;
            }

            if (!IsTargetViewLoaded && !IsLoading)
            {
                return;
            }

            // Fix in WinRT to make sure inner grid is created
            CreateViewModelWrapper();

            // Fix for CTL-307: DataContextChanged is invoked before Unloaded because Parent is set to null
            var targetControlParent = TargetView.GetParent();
            if (targetControlParent == null)
            {
                return;
            }

            base.OnTargetViewDataContextChanged(sender, e);

            var dataContext = TargetView.DataContext;
            if (dataContext.IsSentinelBindingObject())
            {
                return;
            }

            if (!IsUnloading)
            {
                await UpdateDataContextToUseViewModelAsync(dataContext);
            }
        }