2

次のコードがあります。

Private Sub LocalizationComboBox_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
    Thread.CurrentThread.CurrentUICulture = TryCast(e.AddedItems(0), CultureInfo)
    Application.Current.SaveCulture()
    Application.Current.Refresh()
End Sub

そして、私はこれを後で実装しています:

Public NotInheritable Class ApplicationExtensions
Public Shared Sub Refresh(app As Application)
    DirectCast(HtmlPage.Window.GetProperty("location"), ScriptObject).Invoke("reload")
End Sub

Public NotInheritable Class ApplicationExtensions
    Private Sub New()
    End Sub
    Public Shared Sub Refresh(app As Application)
        DirectCast(HtmlPage.Window.GetProperty("location"), ScriptObject).Invoke("reload")
    End Sub

    Public Shared Sub LoadCulture(app As Application)
        Try
            If IsolatedStorageSettings.ApplicationSettings.Contains("language") Then
                Dim language = TryCast(IsolatedStorageSettings.ApplicationSettings("language"), String)
                If language IsNot Nothing Then
                    Thread.CurrentThread.CurrentUICulture = New CultureInfo(language)
                End If
            Else
                app.SaveCulture()
            End If
        Catch
            MessageBox.Show("Please, open Silverlight settings and enable Application Storage.")
        End Try
    End Sub

    Public Shared Sub SaveCulture(app As Application)
        Try
            IsolatedStorageSettings.ApplicationSettings("language") = Thread.CurrentThread.CurrentUICulture.Name
        Catch
            MessageBox.Show("Please, open Silverlight settings and enable Application Storage.")
        End Try
    End Sub
End Class

ただし、次のエラーが表示されます。

'SaveCulture' は 'System.Windows.Application' のメンバーではありません 'Refresh' は 'System.Windows.Application' のメンバーではありません 'SaveCulture' は 'System.Windows.Application' のメンバーではありません

誰かがこれで私を助けることができますか? ここで、これの C# バージョンがあり、問題はありません。

ありがとうございます。

4

1 に答える 1

1

VB.NET 拡張メソッドの規則に従っていません。これは、次のことを示しています。

  • 拡張メソッドは、クラスではなくモジュールに記述する必要があります
  • 彼らは<Extension>属性を持っている必要があります
  • それらを使用するソース コード ファイルにはImports、モジュールのステートメントが必要です。

また、VS2010 以上が必要です。MSDN ライブラリの記事はこちらです。

于 2012-11-05T20:24:02.427 に答える