我正在制作一个带有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:
我点击另一个按钮(按钮2)
但是当我回到button1时,我拥有相同的先前创建的用户控件,但它的 datacontext为空 !!
关于最新情况的任何想法都是值得欢迎的 感谢