Catel.MVVM.Providers.LogicBase.DetermineInterestingViewProperties C# (CSharp) Method

DetermineInterestingViewProperties() private method

Determines the interesting view properties.
private DetermineInterestingViewProperties ( ) : List
return List
        private List<string> DetermineInterestingViewProperties()
        {
            var targetViewType = TargetViewType;

            var finalProperties = new List<string>();

            if ((_viewPropertySelector == null) || (_viewPropertySelector.MustSubscribeToAllViewProperties(targetViewType)))
            {
                var viewProperties = TargetView.GetProperties();
                finalProperties.AddRange(viewProperties);
            }
            else
            {
                var propertiesToSubscribe = new HashSet<string>(_viewPropertySelector.GetViewPropertiesToSubscribeTo(targetViewType));
                if (!propertiesToSubscribe.Contains("DataContext"))
                {
                    propertiesToSubscribe.Add("DataContext");
                }

                foreach (var propertyToSubscribe in propertiesToSubscribe)
                {
                    if (propertiesToSubscribe.Contains(propertyToSubscribe))
                    {
                        finalProperties.Add(propertyToSubscribe);
                    }
                }
            }

            return finalProperties;
        }