Template10 UWP templateのVB.NETバージョンを作成しようとしています。コンストラクタVB.NETで共有プロパティの値をMeに設定します
テンプレートはほとんど準備が整いましたが、実行後にShell.xaml.vbファイルにエラーメッセージが表示されます。このクラスのオリジナルのC#コード:
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;
}
}
とVB.NETに変換されたバージョン:
Public Sub New(navigationService As INavigationService)
と例外が発生:
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
実行のエントリポイントでありますこの行の:
Instance = Me
例外メッセージ:
タイプ「System.TypeInitializationException」の例外がSampleApp.exeで発生したが、ユーザーコードで処理されなかった
追加情報:「SampleApp.Views.Shell」のタイプ初期化子が投げ例外。
InnerException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。
どうすればこのVB.NETクラスを動作させることができますか?ありがとう!
初期化コードはコンストラクタの前で実行されるので、 'Instance.MyHamburgerMenu'はNothingになります – Plutonix