c# - 为什么数据绑定(bind)不能与 PropertyChanged 一起使用?

标签 c# xaml windows-phone-8

我是 XAML 和 Windows 8 手机开发新手,正在学习数据绑定(bind)。 Here ,建议我需要使用,

UpdateSourceTrigger=PropertyChanged

但是当我尝试在 xaml 中使用它时,它会给出错误“未找到请求的值“PropertyChanged”。”相反,它可以正常工作,

UpdateSourceTrigger=Default

我做错了什么,或者它在新版本中已被弃用。

我的代码示例,

 <TextBox x:Name="txt1" Height="100" Width="100"></TextBox>

 <TextBlock Grid.Row="1" x:Name="txt2" Height="100" Width="100" 
    Text="{Binding Text,ElementName=txt1,
 UpdateSourceTrigger=PropertyChanged}"></TextBlock>

谢谢。

最佳答案

UpdateSourceTrigger=PropertyChanged 在 Windows Phone XAML 中不受支持。

您可以使用UpdateSourceTrigger=Explicit来代替, 并在后面的代码中处理源更新:

private void OnTextBoxTextChanged( object sender, TextChangedEventArgs e )
{
  TextBox textBox = sender as TextBox;
  BindingExpression bindingExpr = textBox.GetBindingExpression( TextBox.TextProperty );
  bindingExpr.UpdateSource();
}

另一种选择是使用 Coding4Fun's library绑定(bind)助手。在这种情况下,语法将是:

<TextBox   
  Text="{Binding FooBar, Mode=TwoWay}" 
  local:TextBinding.UpdateSourceOnChange="True" />

关于c# - 为什么数据绑定(bind)不能与 PropertyChanged 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20965338/

相关文章:

windows-phone-7 - 将 Windows Phone 8 Tile 功能添加到 Windows Phone OS 7.1 应用程序

c# - 如何在文本区域的文本末尾显示省略号 (...)?

c# - 删除不同目录下的重复文件

c# - WPF 数据变化动画

windows-phone-8 - 尝试启动 Windows Phone 模拟器时出现 "Not enough memory..."错误

c# - 附加属性抛出 ParseException

c# - 无法获取内部 XAML 绑定(bind)以针对依赖项属性工作

c# - 在内存中操作文本文件的最佳方法 : read as byte[] first? 读取为 File.ReadAllText() 然后另存为二进制文件?

c# - 检查字符串是否包含特定字符集? (可能需要重复的字符)

c# - 何时以编程方式检查 Windows Phone 8.1 中的主题更改