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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTc4NzMsIm5iZiI6MTczOTU5NzU3MywicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ4MDQzMDQtNDlkN2YxZWItZWE3Yy00NDU1LTlhZGUtNzBmZWM2ZjJhYjQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA1MzI1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJhOTJiMzFjZDY3Zjc2ODcyNjljMGI4M2U5MWQ1NzViZGFlMTM5ZTczYjYxYTJkZGExMjgyYWUxMDAyMWFiMzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.K3fKFNRJrV2TIZdi0Tai_9Sf8Xa3DvHjxEU8fzrLO-Q)
![](https://private-user-images.githubusercontent.com/52397976/354804344-3912439e-7288-4b16-8b0d-d30d2b4b3823.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTc4NzMsIm5iZiI6MTczOTU5NzU3MywicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ4MDQzNDQtMzkxMjQzOWUtNzI4OC00YjE2LThiMGQtZDMwZDJiNGIzODIzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA1MzI1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ2YTI2MGU4ZTQ5NzgzZjU1MTUxNDU5MDc3NGM0NDg1ZGJiYjcxMDE4MTQ1N2ExMzdmZTkzODgyM2NmNzI2NTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.DkEg6_Dj9DMWw94WsqiN8FSKnbUAiQQYzBW5avSllRQ)
- 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTc4NzMsIm5iZiI6MTczOTU5NzU3MywicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkwNTEtYWY3MGY0MjItNzA1Ny00ZTc3LWE1NGQtMDQyZWU4MzU4ZDJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA1MzI1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZjYWQ3OTFkNmFiNTI2YWY3ZGJjMjg2NzZiN2JmOWVkODhjY2I1NWZiNzRhOTQ5MzY4MTNmMTRmOTEzMDZkYzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.g6JAGlFo5-CLpswJUL-d3c04iwito0fkYuIyo45xtUs)
![](https://private-user-images.githubusercontent.com/52397976/354799195-e4feaa10-a107-4b58-8d13-1d8be620ec62.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTc4NzMsIm5iZiI6MTczOTU5NzU3MywicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkxOTUtZTRmZWFhMTAtYTEwNy00YjU4LThkMTMtMWQ4YmU2MjBlYzYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA1MzI1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRlOGUwMjU1MWUxZmNlZWFjMDVkMGY1NWI3YTFjOTY1ZWExMDQ5ZmE5Y2FiMGQ1OGRhMTM1YzY3YTc5NWM1YTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.OHtHiQ5Xkosf9O_qeLHIgIHqxCX65cid2HpHKYSYGiw)
![](https://private-user-images.githubusercontent.com/52397976/354799464-5ff487f6-55e4-43e1-9abf-f8d419ee6943.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1OTc4NzMsIm5iZiI6MTczOTU5NzU3MywicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTk0NjQtNWZmNDg3ZjYtNTVlNC00M2UxLTlhYmYtZjhkNDE5ZWU2OTQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA1MzI1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc4MGY0MTg2ZjAyMTgyY2FlYzVmZjY0MjQ2NDBmNDMxMjQ3MThhNDkyODY5YjhhZWZkYTI4NmMzYjBhODg4OTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.i4TwGSE1odEchWTGNoO_CAm3tHy4xfp-ClT8qCJGuEg)
- 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: [email protected], [email protected]
Explore advanced WPF techniques and MVVM implementation with ICommander!