我们有一个带有许多文本框的Uwp应用程序。最近,我们注意到在触摸设备上键入几个字符后,文本框似乎挂起并停止更新文本。如果再次触摸文本框或输入更多字符,它将发送更多字母,依此类推,直到最终赶上键入的内容为止。我可以通过绑定到viewmodel属性的简单文本框来重现此内容。在较早版本的Windows中,或者使用物理键盘键入时,都不存在此问题。我怀疑这是1803年的更新。如有必要,我可以拍一段视频来演示。
// Xaml
<Page
x:Class="TextBoxDemo.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TextBoxDemo"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<TextBox
Text="{x:Bind FooProperty, Mode=TwoWay}"/>
</Grid>
</Page>
// Xaml.cs 使用Windows.UI.Xaml.Controls;
namespace TextBoxDemo
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
public string FooProperty { get; set; }
}
}
我也尝试过:
Text =“ {Binding FooTextProperty,UpdateSourceTrigger = PropertyChanged,Mode = TwoWay}”>
使用一种方法绑定并处理TextChanged事件以更新属性
这对我们来说是一个很大的问题,非常容易重现,所以我希望我做错了。
更新:我应该提一下,尽管在发行版本中也报告了该问题,但是在进行远程调试时,复制起来要容易得多。这是一个视频演示。我键入“这是一个测试”。到我开始输入“是”时,它已经落后了,然后停留在“这是”,直到我再次触摸文本框。 https://drive.google.com/file/d/13s_fcSGJtL2l1bPgcMrcLgqpLFBMfKvb/view?usp=sharing