当使用x:Bind时,与UpdateSourceTrigger=PropertyChanged相当的是什么?

9
<TextBox Text="{Binding MyTitle, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

在使用 x:Bind 时,有没有相应的功能等价物?

如果我这样使用,只有在焦点改变时才会更新。

<TextBox Text="{x:Bind ViewModel.MyTitle, Mode=TwoWay}" />

你的属性是否使用了INotifyPropertyChanged接口?当值发生变化时,该接口应该让UI更新。 - Ken Tucker
4
UpdateSourceTrigger=PropertyChanged 表示每当文本更改时向视图模型发送通知。这意味着每次按键都会发送到视图模型。如果使用默认设置,则在用户导航离开 TextBox 时更新视图模型。 x:Bind 本身的行为类似于默认设置,而不是 PropertyChanged。 - Laith
我在x:Bind中没有看到支持UpdateSourceTrigger的选项 https://msdn.microsoft.com/zh-cn/library/windows/apps/mt204783.aspx - Ken Tucker
你曾经设法找到解决方法吗?我有一个类似的问题,它让我发疯了。 - Nick Goloborodko
@NickGoloborodko 抱歉目前还没有解决方案。您可以创建一个行为,将文本与PropertyChanged绑定的x:Binds - Laith
2个回答

9

Ken Tucker是正确的,x:Bind没有UpdateSourceTrigger属性,它的行为就像设置为PropertyChanged一样,除了TextBox会在失去焦点时触发。请查看页面底部。因此,在这种情况下,您必须继续使用Binding。


7

如果您在2017年后读到这篇文章,UpdateSourceTrigger 现已添加,并在文档中进行了描述。我相信它是在秋季创作者更新版(版本号:16299)中添加的,因此,如果您的最小版本号为16299或更高版本,则可以使用 UpdateSourceTrigger

如果您要针对旧版本的Windows进行开发,则必须继续使用 Binding


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接