J'essaie de créer une version VB.NET du Template10 UWP template.Définir la valeur de propriété partagée à Me dans le constructeur VB.NET
Le modèle est presque prêt, mais après l'exécution, je reçois un message d'erreur dans le fichier Shell.xaml.vb. Le code d'origine C# de cette classe:
public sealed partial class Shell : Page
{
public static Shell Instance { get; set; }
public static HamburgerMenu HamburgerMenu => Instance.MyHamburgerMenu;
Services.SettingsServices.SettingsService _settings;
public Shell()
{
Instance = this;
InitializeComponent();
_settings = Services.SettingsServices.SettingsService.Instance;
}
public Shell(INavigationService navigationService) : this()
{
SetNavigationService(navigationService);
}
public void SetNavigationService(INavigationService navigationService)
{
MyHamburgerMenu.NavigationService = navigationService;
HamburgerMenu.RefreshStyles(_settings.AppTheme, true);
HamburgerMenu.IsFullScreen = _settings.IsFullScreen;
HamburgerMenu.HamburgerButtonVisibility = _settings.ShowHamburgerButton ? Visibility.Visible : Visibility.Collapsed;
}
}
et la version convertie en VB.NET:
Partial Public NotInheritable Class Shell
Inherits Page
Public Shared Property Instance As Shell
Public Shared Property HamburgerMenu As HamburgerMenu = Instance.MyHamburgerMenu
Public _settings As SampleApp.Services.SettingsServices.SettingsService
Public Sub New()
Instance = Me
InitializeComponent()
_settings = SampleApp.Services.SettingsServices.SettingsService.Instance
End Sub
Public Sub New(navigationService As INavigationService)
Me.New()
SetNavigationService(navigationService)
End Sub
Public Sub SetNavigationService(navigationService As INavigationService)
MyHamburgerMenu.NavigationService = navigationService
HamburgerMenu.RefreshStyles(_settings.AppTheme, True)
HamburgerMenu.IsFullScreen = _settings.IsFullScreen
HamburgerMenu.HamburgerButtonVisibility = If(_settings.ShowHamburgerButton, Visibility.Visible, Visibility.Collapsed)
End Sub
End Class
Le point d'entrée de l'exécution est:
Public Sub New(navigationService As INavigationService)
et l'exception se produit à cette ligne:
Instance = Me
Le message d'exception:
Une exception de type 'System.TypeInitializationException' a eu lieu en SampleApp.exe mais n'a pas été traitée dans le code utilisateur
Informations complémentaires: Le type initialiseur pour 'SampleApp.Views.Shell' a jeté un exception.
InnerException: référence d'objet non définie sur une instance d'un objet.
Comment puis-je faire fonctionner cette classe VB.NET? Merci!
Le code d'initialisation sera exécuté avant le constructeur afin que 'Instance.MyHamburgerMenu' sera Rien – Plutonix