如何在选择ListBox项之前从编辑过的TextBox中获取值

本文关键字:编辑 TextBox 获取 选择 ListBox | 更新日期: 2023-09-27 18:28:54

我有一个带公式的Silverlight应用程序。公式器有一个TextBox和一个ListBox。

<TextBox Text="{Binding Value, Mode=TwoWay}/>
<ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
</ListBox>

我聚焦TextBox并在其中写入一些内容。之后,我在ListBox中选择一个项目。ViewModel似乎设置了"SelectedItem"BEFORE"Value"。为什么?我该如何安排订单?我的意思是,我需要先处理TextBox,然后再处理ListBox。

感谢

如何在选择ListBox项之前从编辑过的TextBox中获取值

不幸的是,这看起来像是一个bug。WPF上的相同示例将导致TextBox设置在ListBox之前。你必须找到另一种方法来做你想做的事情,稍微改变一下应用程序UI功能的逻辑。

您可以在TextChanged事件上更新TextBox Text属性绑定,而不是现在的LostFocus。这是一个样品。

TextboxBinding默认在LostFocus上更新,请尝试将绑定更改为:

<TextBox Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}/> 
<ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"> 
</ListBox>