Treefrog.Windows.LayerPane.SyncLayerList C# (CSharp) Method

SyncLayerList() private method

private SyncLayerList ( ) : void
return void
        private void SyncLayerList()
        {
            _listControl.ItemSelectionChanged -= SelectedItemChangedHandler;

            _listControl.Items.Clear();

            if (_controller != null) {
                Stack<ListViewItem> items = new Stack<ListViewItem>();

                foreach (LevelLayerPresenter layer in _controller.LayerList) {
                    ListViewItem layerItem = new ListViewItem(layer.LayerName, 0) {
                        Name = layer.LayerName,
                        Checked = layer.IsVisible,
                        Tag = layer.Layer.Uid,
                    };

                    if (layer is ObjectLayerPresenter)
                        layerItem.ImageIndex = 1;

                    if (layer == _controller.SelectedLayer) {
                        layerItem.Selected = true;
                    }

                    items.Push(layerItem);
                }

                while (items.Count > 0) {
                    _listControl.Items.Add(items.Pop());
                }
            }

            _listControl.ItemSelectionChanged += SelectedItemChangedHandler;
        }