Add MsExtensionsHostingSample sample project
What does the pull request do?
Adds a sample project on how to use .NET Generic Host in a typical Avalonia app.
Scope of this PR:
- [ ] fix or update to an existing sample
- [x] add a new sample
Checklist
If this is a new Sample
- [x] Added a ReadMe-file
- [x] Updated the landing page
- [ ] ~Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with a link to your sample in the related documentation page~
In any case
- [ ] Spell-checking done
- [ ] Checked if all hyperlinks work
- [ ] Checked if all images are visible
Fixed issues
Fixes #35
I have been using this branch as a basis for my IHost usage but struggled when it came to multi views using the MainWindowViewModel which needs to change the Views its currently presenting on the main window, since its 1 window, multi pages (buttons go to different views - I have one main view, but a settings view) - I only want the 1 window.
I came across some issues understanding how that works with the ViewLocator and the DI registration of MainWindowViewModel only being bound to one View.
Not sure if something would need to change a bit with the DI to make a foundation for Windows extensions generic host with a "starting example" for navigation.
@pjmagee typically you would have two ViewModels for two views where each VM is represented by a DataTemplate. Then if you swap DataContext of your Window, you should be navigated automatically. Check also the NavigationSample (okay it's without DI but concept should be similar)
ahh, thank you. Checking out now
Wow what awesome timing for this PR! I just started looking into Avalonia and this was my first question :) Thanks for working on this. @maxkatz6 apart from the "in any case" items, is there anything you consider missing from the sample?
Why is the GlobalHost a public property here? I always keep the host private, in order to guard it from outside access.
You should not need it anywhere else in your code, because you use DI anyway, or am I missing details?
Why is the
GlobalHosta public property here? I always keep the host private, in order to guard it from outside access. You should not need it anywhere else in your code, because you use DI anyway, or am I missing details?
DesignData class is using it.
Ahhh thanks for the help, I totally overlooked that...
I don't like the dependency though, but I get it for this scenario.
Ahhh thanks for the help, I totally overlooked that...
I don't like the dependency though, but I get it for this scenario.
Might be able to make it private and expose an alternative for the DesignTime and wrap it around some compiler labels so its 'removed' from what would be considered actual runtime code?