A WPF-based in-window explorer application implementing MVVM pattern
ICommander is a WPF-based application that replicates the functionality of Windows Explorer within a custom window. This project serves as an excellent example of implementing MVVM pattern in a real-world application, providing developers with insights into advanced WPF techniques and proper project structuring.
![](https://private-user-images.githubusercontent.com/52397976/354804304-49d7f1eb-ea7c-4455-9ade-70fec6f2ab48.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1OTYwOTQsIm5iZiI6MTcyMzU5NTc5NCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ4MDQzMDQtNDlkN2YxZWItZWE3Yy00NDU1LTlhZGUtNzBmZWM2ZjJhYjQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE0VDAwMzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFjYzFkOWJkZDNlNWE5MzUxZTc3ODhkNDZhYmRlZGM3NWU1Y2EyMTFmNTE4NmMyZjAwNjIzZTBhYzc5Y2IwMWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.wqy6wvIlppW4TqV2goh7XfWRFpHDIh5QmBl3LciqXCE)
![](https://private-user-images.githubusercontent.com/52397976/354804344-3912439e-7288-4b16-8b0d-d30d2b4b3823.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1OTYwOTQsIm5iZiI6MTcyMzU5NTc5NCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ4MDQzNDQtMzkxMjQzOWUtNzI4OC00YjE2LThiMGQtZDMwZDJiNGIzODIzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE0VDAwMzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE5YzFiZmJhNWJkN2MyNjY4OWNlNjQ4OGI4MThjNDA0NjJhNGRlMzU4YzQ5MDc3MDJiOTE4ZDRiY2Q0YjQ4NTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.3Me7VkIsTWL250k503h6YbWcGkytXXRqtKzMaTs-XFs)
- Full implementation of MVVM pattern
- Proper use of DataContext and Binding
- Implementation of RelayCommand for action binding
- Development of custom controls for file and folder representation
- Advanced usage of ControlTemplate and DataTemplate
- Implementation of Triggers for dynamic UI updates
- Integration with Windows file system using DllImport
- Implementation of file and folder operations (create, delete, rename)
- File and folder browsing with back and forward navigation
- Creation of a Windows Explorer-like interface
- Implementation of context menus for file and folder operations
- Tab-based interface for multiple folder views
- Efficient loading and display of file system contents
- Smooth navigation and operation handling
- .NET 8.0
- WPF (Windows Presentation Foundation)
- C# 10.0
- MVVM (Model-View-ViewModel) pattern
- Visual Studio 2022 or later
- .NET 8.0 SDK
git clone https://github.com/jamesnet214/icommander.git
- Visual Studio
- Visual Studio Code
- Jetbrains Rider
![](https://private-user-images.githubusercontent.com/52397976/354799051-af70f422-7057-4e77-a54d-042ee8358d2a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1OTYwOTQsIm5iZiI6MTcyMzU5NTc5NCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkwNTEtYWY3MGY0MjItNzA1Ny00ZTc3LWE1NGQtMDQyZWU4MzU4ZDJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE0VDAwMzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJiZTFlNDhhN2UxMjVlYTU2YzUwOGExMjk1Mjg2YzA5MzA2ZDYzMjgzYjM1ZGJmMzIyODMxYWVmYjY2ZTlhZjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.LBdsvOyp6DjYJbeM_wJdPA8sKn0eQwagzUOPHTj1ojU)
![](https://private-user-images.githubusercontent.com/52397976/354799195-e4feaa10-a107-4b58-8d13-1d8be620ec62.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1OTYwOTQsIm5iZiI6MTcyMzU5NTc5NCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkxOTUtZTRmZWFhMTAtYTEwNy00YjU4LThkMTMtMWQ4YmU2MjBlYzYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE0VDAwMzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEyZTBkYjBiNjRkNjk3NTZhNmIzNjdhNTM3MWZkMzNhOWRhYjRkNzY3OGNkNmZiNTYyMTQ5MTA2YjYzZTY3YTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.-FzLAtl5HX4AV7JMziuEEOOO2iqzH2n-IOGszaTTCWg)
![](https://private-user-images.githubusercontent.com/52397976/354799464-5ff487f6-55e4-43e1-9abf-f8d419ee6943.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1OTYwOTQsIm5iZiI6MTcyMzU5NTc5NCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTk0NjQtNWZmNDg3ZjYtNTVlNC00M2UxLTlhYmYtZjhkNDE5ZWU2OTQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE0VDAwMzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYyZWZjMjIzNmU2OTkzMjkzYWY1OTEzOTcxNDdiMzZiMTFiZGQzNmMwMWJiMWU3NTI3YTJiNWYzMmFmZmZjM2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.hDOujycx0lsdG62_44nbOHy0oeFIOa7SGyqpg0v6Jbk)
- Windows 11 recommended
- Launch the ICommander application
- Navigate through your file system using the explorer-like interface
- Use context menus for file and folder operations
- Utilize the command prompt feature for advanced operations
The project is organized into five main folders:
- Based: Contains core classes for file operations, window modules, and MVVM basics
- Core: Defines basic controls and file converters
- Implements: Includes layouts and resources
- Presentation: Contains the main window and view models
- Client: Entry point of the application
If you'd like to contribute to improving the project, please send a Pull Request. All forms of contribution are welcome!
This project is distributed under the MIT license. For more details, please refer to the LICENSE file.
- Website: https://jamesnet.dev
- Email: james@jamesnet.dev, vickyqu115@hotmail.com
Explore advanced WPF techniques and MVVM implementation with ICommander!