我将立即根据构造函数中的DetailPage将值设置为true或false。

值(代码隐藏):

bool _mtde = false;

    public bool mTDE
    {
        get => _mtde;
        set
        {
            _mtde = value;
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(mTDE)));
        }
    }


两个DetailPages的构造函数:

public mTDE ()
    {
        InitializeComponent ();
        AddTankerfassungViewModel.tankerfassung.mTDE = true;
    }


和:

public TDE ()
    {
        InitializeComponent ();
        AddTankerfassungViewModel.tankerfassung.mTDE = false;
    }


mTDEtrue时,电子邮件中还会包含其他信息(代码隐藏)。

public void SendData()
    {
        var mTDEText = "";
        if (mTDE)
        {
            mTDEText = "processed manually ";
        }
        .
        .
        .
    }


我调试了断点,搜索了所有引用:什么都没有。我不知道为什么这个变量停留在false上。当我单击MasterDetailPage上的mTDE Con​​tentPage时,会遇到断点。

最佳答案

您可能应该做的是可以调用的类似状态更改器的方法

public static bool InvertStates(bool boolThatYouWantToInvert){
    return !boolThatYouWantToInvert;
}


然后你可以像这样使用它

AddTankerfassungViewModel.tankerfassung.mTDE = InvertStates(AddTankerfassungViewModel.tankerfassung.mTDE)


请注意,AddTankerfassungViewModel.tankerfassung.mTDE在声明时应初始化,并注意要在第一个DetailPage上传递的初始值。

10-08 05:05