コード例 #1
0
        public BlocksViewModel(NewBlockProcessingService newBlockProcessingService)
        {
            _newBlockProcessingService = newBlockProcessingService;
            MessageBus.Current.Listen <UrlChanged>().Subscribe(x =>
            {
                lock (_lockingObject)
                {
                    Loading = true;
                    Blocks.Clear();
                }
            }
                                                               );

            _newBlockProcessingService.Blocks.Connect().Subscribe(blockChanges =>
            {
                lock (_lockingObject)
                {
                    Loading = true;
                    Blocks.Edit(_ =>
                    {
                        Blocks.Clear();
                        foreach (var block in _newBlockProcessingService.Blocks.Items)
                        {
                            Blocks.AddOrUpdate(new BlockViewModel(block));
                        }
                    });
                    Loading = false;
                }
            }
                                                                  );
        }