我的XAML中有一个简单的双向绑定(iPad上的Xamarin Forms,如果重要的话):
<Entry x:Name="ProgramName" Text="{Binding ProgramName, Mode=TwoWay}"/>
在我的数据模型对象中,我有相关的'ProgramName'属性,以及一些调试,所以我可以看到发生了什么:
string m_programName;
public string ProgramName
{
get { return m_programName; }
set
{
Debug.WriteLine ("ProgramDataModel.ProgramName.set(\"" + value + "\")");
if (value != m_programName)
{
m_programName = value;
PropertyChanged?.Invoke (this, new PropertyChangedEventArgs ("ProgramName"));
}
}
}
除非iPad决定对我的输入进行拼写纠正,否则它会按预期工作。
如果我输入“Emptygg”然后关闭键盘输入窗格,屏幕显示我的文本输入字段现在包含“清空”,但控制台调试显示:
ProgramDataModel.ProgramName.set("")
ProgramDataModel.ProgramName.set("E")
ProgramDataModel.ProgramName.set("Em")
ProgramDataModel.ProgramName.set("Emp")
ProgramDataModel.ProgramName.set("Empt")
ProgramDataModel.ProgramName.set("Empty")
ProgramDataModel.ProgramName.set("Emptyg")
ProgramDataModel.ProgramName.set("Emptygg")
我从未收到关于我的输入字段的最终拼写正确更改的通知。