C# 在VisualStudio中链接页面之间的C文件

C# 在VisualStudio中链接页面之间的C文件,c#,windows-phone,C#,Windows Phone,您好,我是Visual Studio的新手,正在尝试开发Windows Phone应用程序 我已经为我的应用程序创建了一个名为MainPage.xaml的主透视页面,然后从那里我有了一个应用程序栏,上面有几个按钮,一个叫做settings的按钮,它指向settings.xaml页面。这两个xaml页面都有各自的C页面。问题是,当我在其中一个C页面中创建变量时,它们不会出现在另一个C页面中,因为在Intellisense中,它们不会识别它们,并且只是用红色下划线表示错误。如何让C页面相互对话和识别

您好,我是Visual Studio的新手,正在尝试开发Windows Phone应用程序

我已经为我的应用程序创建了一个名为MainPage.xaml的主透视页面,然后从那里我有了一个应用程序栏,上面有几个按钮,一个叫做settings的按钮,它指向settings.xaml页面。这两个xaml页面都有各自的C页面。问题是,当我在其中一个C页面中创建变量时,它们不会出现在另一个C页面中,因为在Intellisense中,它们不会识别它们,并且只是用红色下划线表示错误。如何让C页面相互对话和识别


例如,如果我在设置C页面中,并且我有一个用户可以存储信息的文本框,并且该信息存储在变量文本下,那么我的主页C文件如何能够看到该变量并使用它,因为目前它无法看到该变量。

您创建的每个XAML页面都是唯一的类。同样的规则也适用:如果没有引用或变量是静态的,则不能访问页面上的变量。 因此,您有两种可能的解决方案:

使变量成为您想要访问的静态变量 在调用期间传递对对象的引用 编辑:对于您的示例,请使用以下两种方法之一:

代表 用于保存设置的本地存储
编辑2:您也应该使用“mainviewmodel”MVVM来更改信息。查看默认的Windows Phone项目,例如

在页面之间导航时可以发送参数

Frame.Navigate(TypeName, Object) 
范例

int myVariable = 6;
this.Frame.Navigate(typeof(SettingPage), myVariable);
您可以接收在页面的此重写方法中发送的变量

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    int myVariable = (int)e.Parameter;
}
但在这种情况下。保存设置,然后加载到应用程序中。我会用

Windows.Storage.ApplicationData.Current.LocalSettings
存储可从应用程序中的任何位置访问的设置值

保存设置

var settings = Windows.Storage.ApplicationData.Current.LocalSettings;
settings.Values["myVariable"] = 6;
负载设置

var settings = Windows.Storage.ApplicationData.Current.LocalSettings;
int myVariable = (int)settings.Values["myVariable"];

其中一种方法是:

台阶 Settings.xaml.cs

创建公共属性

// FIRST TYPE
public string TextBoxValue
{
    get; set;
}

or

// SECOND TYPE
public static string TextBoxValue
{
    get; set;
}
将TextBoxValue属性的值设置为textbox值

TextBoxValue = MyTextbox.Text; //MyTextbox is the xaml control.
MainPage.xaml.cs

对于第一个类型属性,创建setting类的对象并参考TextBoxValue

    Settings st = new Settings();
    var value = st.TextBoxValue;

对于第二类属性

      var value = Settings.TextBoxValue;

您是否考虑过使用MVVM模式和框架?这看起来很有希望,但是您能否提供一个示例,在Settings.xaml.cs中使用get和set语句指定一个值,然后将该值导入MainPage.xaml.cs,因为我对对象不是很有经验。