我无法将变量的值从一个类分配到另一个类。我试过用几种方法做但没有用,变量在我的方法中仍然没有价值。
头等舱:
namespace Simulador
{
public partial class Cidade : Window
{
private int QNTTodinho;
private void todinhobotao_Click(object sender, RoutedEventArgs e)
{
TodinhoBotaoo();
}
public void TodinhoBotaoo()
{
QNTTodinho += 1;
MainWindow Valor = new MainWindow(QNTTodinho);
}
}
}
第二课:
namespace Simulador
{
public partial class MainWindow : Window
{
private int QNTTodinho;
public MainWindow(int qNTTodinho)
{
QNTTodinho = Convert.ToInt32(qNTTodinho);
}
private void Salgadinho_Click(object sender, RoutedEventArgs e)
{
Dinheiro22.Content = QNTTodinho.ToString();
}
}
}
答案 0 :(得分:0)
我猜你的应用程序的启动表单是
MainWindow
。这意味着您正在创建MainWindow
的实例并将其作为主应用程序窗口运行。
如果是这种情况,那么创建MainWindow
的另一个实例就像你正在做的那样并在构造函数中将整数传递给它不会影响实际的主窗口。它只是在MainWindow
的副本中设置值,然后直接废弃该副本。
解决这个问题的一种方法是,尽管不是最佳做法,但是要将要修改的成员更改为静态成员,如下所示:
public partial class MainWindow : Window
{
public static int QntTodinho { get; set; }
public MainWindow()
{
}
private void Salgadinho_Click(object sender, RoutedEventArgs e)
{
Dinheiro22.Content = this.QntTodinho.ToString();
}
}
public partial class Cidade : Window
{
private int qntTodinho = 0;
private void todinhobotao_Click(object sender, RoutedEventArgs e)
{
TodinhoBotaoo();
}
public void TodinhoBotaoo()
{
this.qntTodinho += 1;
MainWindow.QntTodinho = this.qntTodinho;
}
}
另请注意,我已完成以下更改:
此解决方案需要考虑的事项主要是线程安全以及缺少在值更改时通知MainWindow
的方法。