private IDirectoryListPresenter CreateDirectoryList(IDirectoryListPresenter oldValue, DirectoryListMode mode) { if (oldValue != null) { if (oldValue.Mode == mode) { return(oldValue); } else { oldValue.Dispose(); } } if (mode == DirectoryListMode.LargeIcon) { return(new LargeIconListPresenter(_directoryListView, _directoryTreePresenter)); } else if (mode == DirectoryListMode.Details) { return(new DetailsListPresenter(_directoryListView, _directoryTreePresenter)); } else { throw new ArgumentException("Invalid DirectoryListMode", nameof(mode)); } }
private void SetDirectoryList(DirectoryListMode value) { _directoryListPresenter = CreateDirectoryList(_directoryListPresenter, value); }