WPF绑定同一类的两个对象

时间:2019-03-25 23:57:48

标签: c# wpf

我有一个课程:

public class Person {
    public string Name { set; get; }
}

我实例化了该班的2个人:

Person person1 = new Person() { Name="Test1" };
Person person2 = new Person() { Name="Test2" };

在Window.xaml中,我有两个文本框要与两个人对象绑定

<Grid>
    <TextBox />
</Grid>

<Grid>
    <TextBox/>
</Grid>

但是我是WPF的新手,不知道该怎么做。

我尝试过

<Grid DataContext="{Binding person1}">
    <TextBox Text="Binding Name"/>
</Grid>

<Grid DataContext="{Binding person2}">
    <TextBox Text="Binding Name"/>
</Grid>

没有工作。 试过

<Grid>
    <TextBox Text="Binding person1.Name"/>
</Grid>

<Grid>
    <TextBox Text="Binding person2.Name"/>
</Grid>

没用。

我可以绑定一个在Window1.cs中设置DataContext的人

但是我无法(或不知道如何)在Window1中将2个人设置为DataContex。

1 个答案:

答案 0 :(得分:-2)

请首先这样设置数据上下文。

Person person1 = new Person() { Name="Test1" };
Person person2 = new Person() { Name="Test2" };

DataContext =  new           
{
  Person1 = person1,
  Person2 = person2 
};

像这样设计侧面绑定数据之后。

<Grid>
    <TextBox Text="{Binding Person1.Name,Mode=TwoWay, 
                                  UpdateSourceTrigger=PropertyChanged}"/>
</Grid>

<Grid>
    <TextBox Text="{Binding Person2.Name,Mode=TwoWay, 
                                  UpdateSourceTrigger=PropertyChanged}"/>
</Grid>

或(您只能在设计方面进行更改)

<Grid DataContext="{Binding person1}">
    <TextBox Text="{Binding Name,Mode=TwoWay, 
                                      UpdateSourceTrigger=PropertyChanged}"/>
</Grid>

<Grid DataContext="{Binding person2}">
      <TextBox Text="{Binding Name,Mode=TwoWay, 
                                      UpdateSourceTrigger=PropertyChanged}"/>
</Grid>