如何在WPF中绑定对象的两个实例(或者我可以吗?)

Buc*_*cks 2 c# data-binding wpf

我试图将一个对象的两个不同实例绑定到一个表单的不同部分,我没有找到任何帮助,如何做到这一点,这使我相信我走错了路.特别是因为这似乎是WPF绑定中非常常见的任务.

所以,在我继续走这条路之前,我想问这个问题.是否可以使用两个不同的DataContexts绑定两个不同的控件?例如,我的表单上有一个Home团队和一个Visitors团队,我想为他们两个使用相同的对象.我原本以为只需创建两个DataContexts(DataContext1和DataContext2),然后为每个设置绑定,但找不到类似的样本.这就是我所拥有的,这是我想要做的一个人为的例子.

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        Results team1 = new Results() { StoreId = 101, Score = 10 };
        Results team2 = new Results() { StoreId = 102, Score = 15 };

        this.DataContext = team1;
        //this.DataContext = team2;
    }
}
Run Code Online (Sandbox Code Playgroud)

Fed*_*gui 5

创建一个适当的ViewModel,它包含这些数据项作为属性:

public class ViewModel
{
    public Results Team1 {get;set;}

    public Results Team2 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

然后:

DataContext = new ViewModel
              {
                 Team1 = new Results { StoreId = 101, Score = 10 },
                 Team2 = new Results { StoreId = 102, Score = 15 },
              };
Run Code Online (Sandbox Code Playgroud)

否则,如果要在UI中引入"结果列表"的概念,请使用ItemsControlObservableCollection<Results>.