我在哪里可以在windows phone应用程序中找到页面类的实例

本文关键字:实例 应用程序 在哪里 phone windows | 更新日期: 2023-09-27 18:27:33

我目前正在为windows phone 8.1编写一个应用程序。我在这个项目中有一些页面类和一个普通的C#类。在我目前正在处理的页面上有一些文本框、组合框和一个按钮。

当用户对所有文本框和组合框进行输入时,我想启用该按钮。因此,当他输入了一个我可以解析为双的数字并在组合框中选择一个项目时,我在C#类中设置了一个变量变量.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

如果是这种情况,我想在我的页面类中调用方法ParameterCompleted(bool),看起来是这样的:

public sealed partial class SupplyParameter : Page
{
    ...
    public void ParameterCompleted(bool ready)
    {
        btnSupplyCalculationGo.IsEnabled = ready;
    }
}

这就带来了ParameterCompleted(bool)不是静态的问题。所以我需要一个类SupplyParameter的实例。但不要创建它的新实例,因为这会在两个类之间带来无限循环。

我想一定已经有一个实例了,它是在加载页面时创建的。但这个例子在哪里?或者,在没有实例的情况下如何调用此方法?

我在哪里可以在windows phone应用程序中找到页面类的实例

如果你四处移动,你可以在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;
    }
}