我正在构建我的第一个 Caliburn WPF 应用程序,我发现自己遇到了以下问题。
我有一个父视图,加载了两个用户控件:搜索和结果。在搜索用户控件上单击搜索按钮时,我不想在结果用户控件中加载结果。
父视图:
<ContentControl x:Name="SearchViewModel"/>
<ContentControl x:Name="ResultsViewModel"/>
父虚拟机
[Export(typeof(IMainViewModel))]
public class ParentViewModel : Screen, IMainViewModel{
public SearchViewModel SearchViewModel { get; set; }
public ResultsViewModel ResultsViewModel { get; set; }
public ParentViewModel()
{
SearchViewModel = new SearchViewModel();
ResultsViewModel = new ResultsViewModel();
}
}
搜索视图
<TextBox x:Name="Term"/>
<Button Content="Search" x:Name="Search"/>
搜索虚拟机
public class SearchViewModel : PropertyChangedBase
{
private string _term;
public string Term
{
get { return _term; }
set
{
_instrumentId = value;
NotifyOfPropertyChange(() => _term);
}
}
public void Search()
{
//Call WCF Service
//Send results to results user control?
}
}
那么实际上我如何使用 caliburn micro 在不同的用户控件/视图模型之间传递或访问数据/方法?