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;
}