Esempio n. 1
0
            private void List_ItemPropertyChanged(object sender, PropertyChangedEventArgs e)
            {
                if (!_loaded)
                {
                    return;
                }

                if (ListFilter.IsAffectedBy(e.PropertyName))
                {
                    var server        = (ServerEntry)sender;
                    var willBeVisible = ListFilter.Test(server);

                    if (ReferenceEquals(_current, server))
                    {
                        _testMeLater = willBeVisible ? null : server;
                        return;
                    }

                    var wasVisible = MainList.Contains(sender);
                    if (willBeVisible != wasVisible)
                    {
                        MainList.Refresh(sender);
                        return;
                    }
                }

                if (e.PropertyName == nameof(ServerEntry.IsFavourite) || e.PropertyName == nameof(ServerEntry.ReferencesString))
                {
                    return;
                }

                if (Sorting?.IsAffectedBy(e.PropertyName) == true)
                {
                    MainList.Refresh(sender);
                }
            }