WPF用户控件绑定获取数据

时间:2012-06-28 21:27:59

标签: wpf binding user-controls

我是WPF和绑定内容的新手。我试图找到解决问题的方法,但仍然遗漏了一些东西; / 我想从TextBox中获取UserControl中的数据,并将其放在主窗口中的属性中,在其工作的路上,但其他没有; /

我有一个简单的课程

public class User
{
    public string Name {get; set;}
    public string Age {get; set;}
}

和一个名为UserDetails的简单用户控件,带有两个TextBox

<TextBox Text="{Bind Name}" />
<TextBox Text="{Bind Age}" />

UserDetails UC放在主窗口上,如下所示:

<uc:UserDetails DataContext="{Binding User, Mode=TwoWay}" />

在MainWindow ViewModel中我有一个属性

public User User { get; set;}
在MainWindow上还有一个按钮,点击后应该用UserDetials UC中的数据填充User属性。 现在已经很晚了,我需要在早上完成它,所以任何直接的解决方案都会受到赞赏。

任何想法怎么做?上面的例子非常简单,但如果你能告诉我如何做到这一点,我可以解决我的其余问题。

2 个答案:

答案 0 :(得分:1)

以下是一些尝试:

  • 确保将视图模型设置为MainWindow的DataContext。即使您没有为视图模型使用单独的类并且仅使用代码隐藏,您也需要分配DataContext。
  • 这可能只是一个拼写错误,但在文本框中,您应该写{Bind Name}{Binding Path=Name, Mode=TwoWay}和年龄相同。您需要在属性上将绑定模式设置为双向,而不是像示例中那样在类上设置。

答案 1 :(得分:0)

您需要实现INotifyPropertyChanged接口并在属性设置器中触发PropertyChanged事件。您需要为MainViewModelUser课程执行此操作。这是example如何完成的。