WPF,数据绑定为什么没反应

说的是 2013-08-15 04:36:49

<Window.Resources>
<local:Person x:Key="mydatasource" Name="张三" ></local:Person>
</Window.Resources>
<Grid HorizontalAlignment="Left" Height="289" VerticalAlignment="Top" Width="533" DataContext="{StaticResource mydatasource}">
<TextBox Name="textbox1" Text="{Binding Path=Name}" HorizontalAlignment="Left" Height="23" Margin="120,131,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
<Button Content="Button" HorizontalAlignment="Left" Height="29" Margin="275,164,0,0" VerticalAlignment="Top" Width="76" Click="Button_Click"/>
<TextBox Name="textbox2" HorizontalAlignment="Left" Height="23" Margin="120,192,0,0" TextWrapping="Wrap" Text="{Binding Path=Name}" VerticalAlignment="Top" Width="120"/>
</Grid>


private void Button_Click(object sender, RoutedEventArgs e)
{
textbox1.Text = "李四";
}


class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

private string name;
public string Name
{
get { return name; }
set
{
name = value;
OnPropertyChanged("Name");
}
}
protected void OnPropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
}

textbox1、textbox2的Text属性都绑定到一个Person对象,单击button的时候,修改了textbox1的Text属性值,因为Text属性是双向绑定吧,所以绑定源的Name属性值也会变的吧,而Name属性实现了INotifyPropertyChanged接口的,那textbox2也会跟着变的吧
可是,为什么textbox2的Text属性值没有变化呢?
...全文
274 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zealot112345 2013-08-15
  • 打赏
  • 举报
回复
textbox1 的绑定修改为
Text="{Binding Path=Name,UpdateSourceTrigger=PropertyChanged}" 
说的是 2013-08-15
  • 打赏
  • 举报
回复
引用 2 楼 sqlchen 的回复:
textbox1 的绑定中显式申明一下双向绑定(Mode=TwoWay),再试试看
试了,还是不行
信丰小飞鱼 2013-08-15
  • 打赏
  • 举报
回复
在确定有给定数据源的情况下这无非就两种问题,一就是二楼那个哥们说的数据双向绑定问题,另一个就是绑定数据源后没有及时刷新显示的问题(有的要控件要刷新,有的又不用刷新,要看是什么控件,我就遇到很多这问题,特别是第三方控件)
sqlchen 2013-08-15
  • 打赏
  • 举报
回复
textbox1 的绑定中显式申明一下双向绑定(Mode=TwoWay),再试试看

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧