【问题标题】:WPF Activate binding OnTextInput on textboxWPF 在文本框上激活绑定 OnTextInput
【发布时间】:2013-04-08 22:06:55
【问题描述】:

我有一个带有以下绑定的文本框:

<TextBox Binding={Path=MyStr, Mode=TwoWay}>

我的问题是绑定仅在文本框失去焦点时触发,而不是针对用户输入的每个字符。

文本框还有一个 OnTextInput 函数可以正常触发,但是如何在后面的代码中激活绑定?

*我宁愿以纯粹的 mvvm 方式来做(如果可能,不要使用窗口的代码)

mvvm 是否接受任何答案。

【问题讨论】:

    标签: c# wpf mvvm binding textbox


    【解决方案1】:

    这里:

    <TextBox Text="{Binding Path=MyStr, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
    

    现在您的绑定属性将在每个字符上更改。

    【讨论】:

      【解决方案2】:

      你可以使用 updatesource 触发器并将其设置为属性更改

      <Binding Source="{StaticResource myDataSource}" Path="Name"
               UpdateSourceTrigger="PropertyChanged"/>
      

      一旦发生更改,它会将更新后的值发送回您的 DataContext

      在 msdn 上:
      http://msdn.microsoft.com/en-us/library/system.windows.data.updatesourcetrigger.aspx

      【讨论】:

        【解决方案3】:

        有一个名为 PropertyChanged 的​​ UpdateSourceTrigger,如果您在更改文本框的文本时将其用作更新触发器,它将触发,并且在您的绑定属性设置器中,您可以执行文本更改时需要执行的任何操作。

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

        【讨论】:

          猜你喜欢
          • 2010-11-25
          • 1970-01-01
          • 2012-11-23
          • 2016-07-22
          • 2012-11-24
          • 2015-10-16
          • 2011-03-29
          • 1970-01-01
          • 2010-12-20
          相关资源
          最近更新 更多