我试图创建的屏幕是多部分结果查看器。批量作业完成后,您可以双击它并打开此屏幕,该屏幕将包含有关刚刚运行的批量作业(屏幕顶部30%,全宽)的基本数据的顶部部分,然后下部70%将由一个左对齐的列表框(宽度的20%)和一组选定的子结果组成,而一个详细信息窗格占用剩余的80%宽度。使用WPF/MVVM在运行时动态更改UserControl内容
我希望它的行为方式是当您选择左侧列表框中的子结果时,右侧窗格将填充子结果的详细信息。因为它将变得复杂并且需要可扩展,所以我想将每个子结果细节显示面板实现为UserControl。
父ViewModel包含一个IDictionary<Enum.ResultType, IResultPanel>
- 并且该列表框将从该字典的键中填充,并且当您选择一个选项时,它将从字典中获取IResultPanel对象,该对象将是User Control,下面是一个示例代码片段
public partial class SimpleCalcInfoResult : UserControl, IResultPanel
{
private SimpleCalcInfoResultViewModel _viewModel;
public SimpleCalcInfoResult(SimpleCalcInfoResultViewModel viewModel)
{
InitializeComponent();
_viewModel = viewModel;
}
}
的IResultPanel接口是一个空白空接口,仅用来便于能够有字典上面具有公共类型,因为我觉得具有用户控件的字典太宽泛。
我得到的问题是我无法弄清楚什么XAML在父控制中使用有一个可更改的UserControl面板。很明显,你可以有
<local:MyControl> ... </local:MyControl>
作为一个硬编码用户的控制,但我怎么能有XAML的一个部分,这将让我改变显示其用户控制,这取决于列表框项目选择?
查找到WPF模板,即DataTemplateSelectors(http://tech.pro/tutorial/807/wpf-tutorial-how-to-use-a-datatemplateselector)和DataTemplates(http://msdn.microsoft.com/en-us/library/ms742521.aspx)与DataType – DenisPostu