C# 为什么数据绑定不能使用PropertyChanged?

C# 为什么数据绑定不能使用PropertyChanged?,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,我不熟悉XAML和Windows 8手机开发,也不了解数据绑定,建议我使用 UpdateSourceTrigger=PropertyChanged 但当我尝试在xaml中使用它时,它给出了错误,即“Requested value”PropertyChanged“not found” UpdateSourceTrigger=Default 我做错了什么,或者它在新版本中被弃用了 我的代码示例 <TextBox x:Name="txt1" Height="100" Width="100"

我不熟悉XAML和Windows 8手机开发,也不了解数据绑定,建议我使用

UpdateSourceTrigger=PropertyChanged
但当我尝试在xaml中使用它时,它给出了错误,即“Requested value”PropertyChanged“not found”

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>

谢谢。

更新资源记录器与目标控件的更新无关。相反,例如,当您对文本框执行某些验证时,它非常有用

如果在XAML代码后面有一个viewmodel,那么应该添加INotifyPropertyChanged接口,并按照指导原则进行实现

以下是一个例子:


XAML代码段应该可以工作,至少对于WPF是这样。什么不起作用?

UpdateSourceTrigger与目标控件的更新无关。相反,例如,当您对文本框执行某些验证时,它非常有用

如果在XAML代码后面有一个viewmodel,那么应该添加INotifyPropertyChanged接口,并按照指导原则进行实现

以下是一个例子:

XAML代码段应该可以工作,至少对于WPF是这样。什么不起作用?

Windows Phone XAML不支持UpdateSourceTrigger=PropertyChanged

您可以改为使用UpdateSourceTrigger=Explicit, 并在代码隐藏中处理源代码更新:

private void OnTextBoxTextChanged( object sender, TextChangedEventArgs e )
{
  TextBox textBox = sender as TextBox;
  BindingExpression bindingExpr = textBox.GetBindingExpression( TextBox.TextProperty );
  bindingExpr.UpdateSource();
}
另一种选择是使用BindingHelper。在这种情况下,语法将是:

<TextBox   
  Text="{Binding FooBar, Mode=TwoWay}" 
  local:TextBinding.UpdateSourceOnChange="True" />
Windows Phone XAML不支持UpdateSourceTrigger=PropertyChanged

您可以改为使用UpdateSourceTrigger=Explicit, 并在代码隐藏中处理源代码更新:

private void OnTextBoxTextChanged( object sender, TextChangedEventArgs e )
{
  TextBox textBox = sender as TextBox;
  BindingExpression bindingExpr = textBox.GetBindingExpression( TextBox.TextProperty );
  bindingExpr.UpdateSource();
}
另一种选择是使用BindingHelper。在这种情况下,语法将是:

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

控件到控件的数据绑定在粘贴的代码中不起作用。我刚刚测试了WPF,工作正常,正如预期的那样。不过,我无法测试WP8。控件到控件数据绑定在粘贴的代码中不起作用。我刚刚测试了WPF,工作正常,正如预期的那样。不过,我无法测试WP8。Windows Phone使用。这是WPF使用的XAML的另一种味道。因此,我用xaml标记替换了wpf标记。@venerik Thank,再次表示编写xaml.Windows Phone使用的特定和典型的方法。这是WPF使用的XAML的另一种味道。因此,我用xaml标记替换了wpf标记。@venerik Thank,再次表示编写xaml的特定和典型方式。