我在哪里可以找到 windows phone 应用程序中页面-class 的实例
Where can I find the instance of a page-class in a windows phone app
我目前正在为 windows phone 8.1 编写应用程序。我在这个项目中有一些页面 classes 和一个普通的 C# class。
我目前正在处理的页面上有一些文本框、组合框和一个按钮。
我想在用户向所有文本框和组合框输入内容时启用该按钮。所以我在 C# class Variables.cs 中设置了一个变量,例如他输入了一个我可以解析为双倍的数字,然后在组合框中选择了一个项目。 Variables.cs 看起来像这样:
class Variables
{
public static int iSelectedIndex = -1;
private static void SupplyParameterReady()
{
if (tbSupply1 && tbSupply2 && unitSupply1 && unitSupply2)
{
SupplyParameter.ParameterCompleted(true);
}
else
{
SupplyParameter.ParameterCompleted(false);
}
}
public static bool tbSupply1
{
get
{
return tbSupply1;
}
set
{
tbSupply1 = value;
if (value)
SupplyParameterReady();
}
}
}
每次设置变量 true
时,方法 SupplyParameterReady()
检查所有其他变量是否也是 true
。
如果是这种情况,我想在我的页面 class 中调用方法 ParameterCompleted(bool)
,如下所示:
public sealed partial class SupplyParameter : Page
{
...
public void ParameterCompleted(bool ready)
{
btnSupplyCalculationGo.IsEnabled = ready;
}
}
这带来了 ParameterCompleted(bool)
不是静态的问题。所以我需要一个 class SupplyParameter
的实例。
但是不想创建它的新实例,因为这会在 2 classes.
之间带来无限循环
我想应该已经有一个实例了,它是在加载页面时创建的。但是这个实例在哪里?或者如何在没有实例的情况下调用此方法?
如果你四处移动,你可以在你的 SupplyParameter
页面中有一个(非静态)Variables
成员并将 this
传递给构造函数。它看起来像这样
class Variables
{
public int iSelectedIndex = -1;
public SupplyParameter _page;
public Variables(SupplyParameter page)
{
_page = page;
}
private void SupplyParameterReady()
{
if (tbSupply1 && tbSupply2 && unitSupply1 && unitSupply2)
{
_page.ParameterCompleted(true);
}
else
{
_page.ParameterCompleted(false);
}
}
public bool tbSupply1
{
get
{
return tbSupply1;
}
set
{
tbSupply1 = value;
if (value)
SupplyParameterReady();
}
}
}
public sealed partial class SupplyParameter : Page
{
Variables _vars;
public SupplyParameter()
{
vars = new Variables(this);
}
...
public void ParameterCompleted(bool ready)
{
btnSupplyCalculationGo.IsEnabled = ready;
}
}
我目前正在为 windows phone 8.1 编写应用程序。我在这个项目中有一些页面 classes 和一个普通的 C# class。 我目前正在处理的页面上有一些文本框、组合框和一个按钮。
我想在用户向所有文本框和组合框输入内容时启用该按钮。所以我在 C# class Variables.cs 中设置了一个变量,例如他输入了一个我可以解析为双倍的数字,然后在组合框中选择了一个项目。 Variables.cs 看起来像这样:
class Variables
{
public static int iSelectedIndex = -1;
private static void SupplyParameterReady()
{
if (tbSupply1 && tbSupply2 && unitSupply1 && unitSupply2)
{
SupplyParameter.ParameterCompleted(true);
}
else
{
SupplyParameter.ParameterCompleted(false);
}
}
public static bool tbSupply1
{
get
{
return tbSupply1;
}
set
{
tbSupply1 = value;
if (value)
SupplyParameterReady();
}
}
}
每次设置变量 true
时,方法 SupplyParameterReady()
检查所有其他变量是否也是 true
。
如果是这种情况,我想在我的页面 class 中调用方法 ParameterCompleted(bool)
,如下所示:
public sealed partial class SupplyParameter : Page
{
...
public void ParameterCompleted(bool ready)
{
btnSupplyCalculationGo.IsEnabled = ready;
}
}
这带来了 ParameterCompleted(bool)
不是静态的问题。所以我需要一个 class SupplyParameter
的实例。
但是不想创建它的新实例,因为这会在 2 classes.
我想应该已经有一个实例了,它是在加载页面时创建的。但是这个实例在哪里?或者如何在没有实例的情况下调用此方法?
如果你四处移动,你可以在你的 SupplyParameter
页面中有一个(非静态)Variables
成员并将 this
传递给构造函数。它看起来像这样
class Variables
{
public int iSelectedIndex = -1;
public SupplyParameter _page;
public Variables(SupplyParameter page)
{
_page = page;
}
private void SupplyParameterReady()
{
if (tbSupply1 && tbSupply2 && unitSupply1 && unitSupply2)
{
_page.ParameterCompleted(true);
}
else
{
_page.ParameterCompleted(false);
}
}
public bool tbSupply1
{
get
{
return tbSupply1;
}
set
{
tbSupply1 = value;
if (value)
SupplyParameterReady();
}
}
}
public sealed partial class SupplyParameter : Page
{
Variables _vars;
public SupplyParameter()
{
vars = new Variables(this);
}
...
public void ParameterCompleted(bool ready)
{
btnSupplyCalculationGo.IsEnabled = ready;
}
}