从隔离存储导航到xaml页面

时间:2012-02-09 14:27:33

标签: windows-phone-7 xaml navigation isolatedstorage

我想知道是否有人之前已经这样做或试图这样做。我想从当前页面导航到生成并存储在隔离存储中的页面。

这可能吗?

我已经找到了一种生成xaml代码的方法,我正在努力生成xaml.cs文件,但我似乎无法找到一种导航到隔离存储中新创建的现有文件的方法。 我正在使用“isostore”URI模式,但它在RootFrame_NavigationFailed中引发异常: [System.InvalidOperationException] = {“在位置'/isostore; /screenTest.xaml'找不到XAML。”}。提前谢谢。

致以最诚挚的问候,

西皮

2 个答案:

答案 0 :(得分:1)

我认为你能得到的最接近的是:

  • 将用户控件(而非页面)存储在独立存储中
  • 使用XamlReader.Load
  • 加载它们
  • 在当前页面中注入加载的UserControl

缺点:

  • 您可以忘记代码隐藏文件,因为您无法编译它。你必须找到另一种方法来连接事件。我建议采用MVVM方法,通过绑定操作并为每个usercontrol使用相同的viewmodel
  • 您没有使用NavigationService,因此您必须处理导航内容(后退按钮和逻辑删除后应用程序恢复)

答案 1 :(得分:0)

public MainPage()
{
    InitializeComponent();
    this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    string UserName;

    IsolatedStorageSettings.ApplicationSettings.TryGetValue<string>("UserName", out UserName);
    if (!string.IsNullOrEmpty(UserName))
    {
        txtUserName.Text = UserName;
        txtPassword.Focus();
    }

    else
        txtUserName.Focus();
}

private void btnLogin_Click(object sender, RoutedEventArgs e)
{
    IsolatedStorageSettings.ApplicationSettings["UserName"] = txtUserName.Text;
}