我将值设置为true或false,具体取决于构造函数中的DetailPage。
值(代码隐藏):
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;
}
当mTDE
为true
时,电子邮件中会有其他信息(代码隐藏)。
public void SendData()
{
var mTDEText = "";
if (mTDE)
{
mTDEText = "processed manually ";
}
.
.
.
}
我使用断点进行调试,搜索所有引用:没有。我不知道为什么这个变量会留在false
上。当我通过MasterDetailPage点击mTDE ContentPage时,会遇到断点。
答案 0 :(得分:0)
你应该做的事情就像你可以调用的状态转换器方法
public static bool InvertStates(bool boolThatYouWantToInvert){
return !boolThatYouWantToInvert;
}
然后你可以像这样使用它
AddTankerfassungViewModel.tankerfassung.mTDE = InvertStates(AddTankerfassungViewModel.tankerfassung.mTDE)
请注意,当您声明AddTankerfassungViewModel.tankerfassung.mTDE时,应该初始化它,并注意您要在第一个DetailPage上传递的初始值
答案 1 :(得分:0)
解决方案是“外包”SendData()
。我创建了一个新类,并在我的ViewModel SendCommand
中调用它。
namespace TDE
{
class Email
{
public static void SendData()
{
var mTDEText = "";
if (AddTankerfassungViewModel.tankerfassung.mTDE)
{
mTDEText = "MANUELL ERFASST: ";
};
.
.
.
}
}
}
在我的ViewModel中,我这样称呼它。
Email.SendEmail();
感谢您的帮助。