切换contentcontrol内容时丢失datacontexts

时间:2017-03-19 13:30:04

标签: wpf datacontext contentcontrol

我正在制作一个带有ContentControl和一堆按钮的导航shell系统。

每个按钮负责实现不同的UserControl类型并将其放在ContentControl中。 我还有一个所有打开的用户控件的ObservableCollection

public ObservableCollection<UserControl> OpenedWindowsList = new ObservableCollection<UserControl>();

所以对于button1,例如我有这个

private void Button1_Click(object sender, RoutedEventArgs e)
{
    var w = OpenedWindowsList.Where(a => a is MyUserControl1).FirstOrDefault();
    if (w == null)
    {
        ADHERANT adh = new ADHERANT(); // my EF object that serve as datacontext

        MyUserControl1 UC = new MyUserControl1();
        UC.DataContext = adh;


        OpenedWindowsList.Add(UC);

        MainContentControl.Content = UC;

    }
    else
    {
        MainContentControl.Content = w;
    }
}

基本上这与我主窗口中的其他导航按钮相同。

所以我点击Button1:

  • 创建了usercontrol并且它与datacontext相关联

我点击另一个按钮(按钮2)

  • 再次创建另一个usercontrol并将其关联到datacontext

但是当我回到button1时,我拥有相同的先前创建的用户控件,但它的 datacontext为空 !!

关于最新情况的任何想法都是值得欢迎的 感谢

0 个答案:

没有答案