首先给大家看一下我之前是怎么给ContentControl绑定界面的。
代码复现
1、XXView.xaml
在XXView.xaml的ContentControl添加名称为XX-XX"的子界面
...... //这部分内容我就先省略了
<ContentControl x:Name="XX-XX"/>
2、XXViewModel.cs
在XXViewModel.cs中处理XX-XX
public class XXViewModel : Screen
{
//属性
public XX-XXViewModel XX-XX
{
get{return _xX-XX;}
set
{
_xX-XX = value;
NotifyOfPropertyChange(()=>XX-XX);
}
}
public XX-XXViewModel _xX-XX;
//在后续定义的方法中操作XX-XX
public void Func()
{
......
if(...)
{
XX-XX = new XX-XXViewModel();
}
else
{
XX-XX = null;
}
......
}
}
这样一波操作后,运行程序子界面竟然不显示。😓(lll¬ω¬)
解决方案
刚出现的问题很有可能是没有给ContentControl绑定上值,所以就再换一种方式重新绑定一下。
1、XXView.xaml
在XXView.xaml的ContentControl添加名称为XX-XX"的子界面
...... //这部分内容我就先省略了
<ContentControl x:Name="XX-XX" Content="{Binding XX-XX}"/>
2、XXViewModel.cs
在XXViewModel.cs中处理XX-XX
public class XXViewModel : Screen
{
//属性
public XX-XXView XX-XX
{
get{return _xX-XX;}
set
{
_xX-XX = value;
NotifyOfPropertyChange(()=>XX-XX);
}
}
public XX-XXView _xX-XX;
//在后续定义的方法中操作XX-XX
public void Func()
{
......
if(...)
{
XX-XX = new XX-XXView();
XX-XX.DataContext = new XX-XXViewModel(); //在这里还需要处理一下界面的上下文
}
else
{
XX-XX = null;
}
......
}
}
好了,界面就显示出来了,开心。