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