2014-11-22 80 views
0

我是c#编程的初学者,在阅读一些教程后我正在开发windows phone应用程序。c# - 如何在其他类的方法中从类的外部访问变量?

我的想法是,当用户点击一个窗口页面中的按钮时,其他窗口电话页面中的其他按钮必须将颜色从红色更改为绿色。

对不起,如果我太基本。

这我在一个名为“IndexPage.xaml”

 <Button x:Name="One_green" 
      Content="1"    
      Background="Green" 
      Click="One_Click" 
     /> 

     <Button x:Name="One_red" 
      Content="1"    
      Background="Red" 
      Click="One_Click"      
     /> 

现在我看到在我的窗口红色按钮,绿色按钮隐藏在背页定义。

现在,下面的代码是从其他的Windows Phone页“1.xaml”

 <Button Content="GO" Click="Button_Click"/> 

现在,当用户点击“GO”按钮,我希望按钮变为红色到绿色的“IndexPage的.xaml”。所以我尝试了代码像这样在“1.xaml.cs”

 private void Button_Click(object sender, RoutedEventArgs e) 
     { 
     One_red.Visibility = Visibility.Collapsed; 
     One_green.Visibility = Visibility.Visible; 
     } 

但我不能够访问在上面的代码中的“One_red”或“One_green”按钮。请摆脱我的指示。

另外我希望该代码只执行一次。 (即)当IndexPage.xaml再次加载时,我希望该按钮始终为绿色。

非常感谢您提前。

请告诉我,如果需要一些其他的细节。

回答

1

您可以在“Index.xaml”类中定义一个公共或内部静态变量,该变量指定将在负载上显示哪个按钮,除非另行指定。这个变量可以在课程外部访问,甚至可以在项目之外访问,具体取决于所选择的修饰符。 “Index.xaml”类的构造函数可以将代码重置为默认值,以确保仅在创建页面时发生在下一个上。如果您不是每次都创建一个新页面,那么当您想将其置于前台时,您必须将默认重置器放在一个调用的方法中。

+0

谢谢,但我想保存状态,即使在程序关闭后。我该怎么做? (即)即使程序关闭并再次打开后,我也希望该按钮保持绿色。换句话说,该特定功能只能执行一次,但该更改必须在该另一个Windows Phone页面中保持不变。请帮忙。在此先感谢 – seshagopalan 2014-11-22 18:22:51

0

您可能无法访问按钮点击事件,因为它是私人的,您可能需要将其设为保护或公开,默认访问说明符也可能会正常。

public void Button_Click(object sender, RoutedEventArgs e) 

或默认是:

void Button_Click(object sender, RoutedEventArgs e) 
+0

其实我无法访问在另一个Windows手机页面定义的爵士按钮。按钮点击是好的。它在后面的代码中被访问。 – seshagopalan 2014-11-22 18:13:13

1

在我看来,你正在努力学习,而不是一个规范的遵循和实施。因此,并且因为您在2014年(几乎在2015年), 开始使用C#,因此您将直接跳到数据绑定声明式的强制性命令,MVVM(MVVx)通过MVC(MVx )。

XAML是围绕这种模式设计的。这是XAML做事的自然方式,非常适合并且是学习模式的完美平台。

它需要大量的学习,思考和重新学习,但它会打开你的眼睛,以现代编程技术。

这就是说...有太多的方法来做你所要求的东西,虽然没有什么是完全错误的,但.Net/C#/ MsTech中有2个当前的趋势,它不是浪费你的时间:

官能反应性编程OOP/MVVx(在x为任何)。

示例有ReactiveUI,Reactive Extensions,PRISM,Caliburn.Micro等等。它们可以组合使用,就像将传统的事件驱动/事件回调与MVVM和/或Reactive Programming结合起来一样。不过,我会建议反对它。

我将以最有文件记载的方式开始。

看看Data binding for Windows Phone 8。这是我第一次使用“windows phone 8 xaml数据绑定”的结果,并处理颜色和控件。

如果您遵循该示例并将资源添加到您的应用程序,就完成了。

当然,你仍然可以使用event => onClick +静态类来保存View实例之间的值,但是如果我正确地假设你正在学习,我就不会去那条路线。

对不起,如果我漂流。 :)

+0

我会听取建议。它为我提供了未来的方向,而且这些链接似乎对我们有很大的帮助。谢谢 – seshagopalan 2014-11-22 18:16:10

相关问题