c# - wpf Wizard Toolkit ItemsSource 绑定到列表
问题描述
我正在实现 MVVM 模式并希望使用 WPF ToolKit (Xceed.Wpf.Toolkit) 中的向导控件来设计我的界面。
我想做的是将向导的项目源绑定到 aList<ViewModelBase>
并使用 aDataTemplate
将其显示为页面。到目前为止,还没有乔伊。:-(
我已经尽可能地修剪了我的代码,但这就是它的精髓。
我的观点 XAML:
<xctk:Wizard FinishButtonClosesWindow="True" ItemsSource="{Binding Pages}" />
我的数据模板:
<DataTemplate DataType="{x:Type vm:ViewModelBase}">
<xctk:WizardPage Title="{Binding DisplayName}" Description="{Binding DisplayDescription}"/>
</DataTemplate>
在 cs 文件:VM 中,定义了返回列表的属性:
public List<ViewModelBase> Pages
在 app.xaml.cs 中:
var viewModel = new ViewModels.winMainViewModel();
winMain window = new winMain();
window.DataContext = viewModel;
window.Show();
抛出的错误是:
System.NotSupportedException 未处理 HResult=-2146233067
Message=Wizard 应该只包含 WizardPages。
来源=Xceed.Wpf.Toolkit
任何帮助将不胜感激。
TIA,雷
解决方案
谢谢你的回复。昨晚我尝试在没有运气的情况下玩 IConverter 类(还)
由于未决的最后期限,我决定编写一个简单的转换属性。
public List<WizardPage> wizPages
{
get
{
List<WizardPage> rtn = new List<WizardPage>();
foreach (ViewModelBase vmb in Pages)
{
rtn.Add(new WizardPage()
{ Title = vmb.DisplayName
, Description = vmb.DisplayDescription
, DataContext = vmb
}); // rtn.Add
} // foreach (ViewModelBase vmb in Pages)
return rtn;
}
}
推荐阅读
- python - Django REST Framework - 序列化程序看不到字段
- python - 最近成员附加属性分析
- python - 如何使用 if 条件在循环中增加迭代器?
- ssis - catalog.executions 中 process_id 的值从何而来?
- php - 为什么我不能在我的 PHP 网站上上传大文件?
- jquery - 在 Google Developer Network 标签中找不到网络调用的来源
- java - 为什么这个只有静态块的奇怪java代码会编译?
- buildfire - 在 BuildFire myPlugin SDK 的自定义插件中创建自定义链接
- swift - 在 SK3DNode 中添加 SCNLight
- python - python虚拟环境应该与docker镜像一起使用吗?