【问题标题】:How to get a value from an edited TextBox before a ListBox item is selected?如何在选择 ListBox 项之前从已编辑的 TextBox 中获取值?
【发布时间】:2012-04-08 06:27:37
【问题描述】:

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

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

我聚焦 TextBox 并在其中写入一些内容。在此之后,我在 ListBox 中选择一个项目。 ViewModel 似乎在“Value”之前设置了“SelectedItem”。为什么?如何修复订单?我的意思是我需要在 ListBox 之前处理 TextBox。

谢谢

【问题讨论】:

    标签: c# .net silverlight xaml binding


    【解决方案1】:

    不幸的是,这看起来像一个错误。 WPF 上的相同示例将导致 TextBox 设置在 ListBox 之前。您必须通过稍微更改应用 UI 功能的逻辑来找到另一种方式来做您想做的事情。

    【讨论】:

      【解决方案2】:

      您可以在TextChanged 事件上更新您的TextBox Text 属性绑定,而不是现在的LostFocusHere 是一个示例。

      【讨论】:

      • 你确定你用对了吗?因为有了这种行为,你的Value 会在你每次写东西时更新,而且会在你选择ListBox 之前更新。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-04
        • 1970-01-01
        • 2011-09-16
        • 2018-02-03
        • 1970-01-01
        • 2016-02-18
        • 2013-11-17
        相关资源
        最近更新 更多