代码binding 和xaml binding的疑惑?

Henry_Wu001 2015-06-17 11:37:19
xaml中TextBox作了如下binding,测试是成功的
<TextBox Text="{Binding Forename, Mode=TwoWay}" x:Name="myTB" Grid.Row="0" Grid.Column="1"/>

代码中的环境,
把一个PersonModel 的一个对象设为当前窗口的DataContext,(this.DataContext = Vm1;)
通过一个button事件修改DataContext的对象(this.DataContext = Vm2;)测试OK,TextBox的text属性会变化。

然后现在想用代码来实现xaml中的binding这块,却怎么也不变化。代码binding如下:
Binding binding1 = new Binding(“Forename”);
binding1.Source = this.DataContext;
this.myTB.SetBinding(TextBox.TextProp,binding1);


求教!!



 public class PersonModel : INotifyPropertyChanged
{
private string _forename;
public string Forename
{
get { return _forename; }
set
{
if (value == _forename)
return;

_forename = value;
OnPropertyChanged("Forename");
}
}
}
...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2015-06-17
  • 打赏
  • 举报
回复
binding 只要 设定好 源与目标,要绑定到的UIElement的某个依赖属性就ok了。
Henry_Wu001 2015-06-17
  • 打赏
  • 举报
回复
better
  Binding binding = new Binding("DataContext.Forename");
            binding.Source = this;
            binding.Mode = BindingMode.TwoWay;
            this.cityContext.SetBinding(TextBox.TextProperty, binding);
Henry_Wu001 2015-06-17
  • 打赏
  • 举报
回复
欧,解决了,如下:
  Binding binding = new Binding("DataContext.Forename");
            binding.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(Window), 1);
             
            binding.Mode = BindingMode.TwoWay;
            this.cityContext.SetBinding(TextBox.TextProperty, binding);

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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