早上好,
我有一组动态的方法,它们都具有相同的返回类型ResultSet
。我有 UI 来显示一个ResultSet
,所以剩下的就是提供一个用于参数化方法的 UI。例如我可能有以下方法;
public ResultSet FindNew (DateTime date, int id)
public ResultSet FindOld (DateTime date, int id)
public ResultSet FindMerged (DateTime date, int[] id)
public ResultSet FindNew (DateTime date, string name)
我想使用反射在类中提供具有正确返回类型的所有方法的下拉列表。选择后,我想生成参数化方法所需的输入表单。然后,用户应该能够提交查询并查看结果或被告知发生的错误。
我认为我可以使用我对 C# 的知识以一种天真的方式实现此功能,但我希望 WPF 的某些功能可能对我的探索有所帮助。
编辑
抱歉这个问题太宽泛了。
鉴于您
IEnumerable
将ParameterInfo[]
如何在您的视图中绑定到 this 以创建一个表单,以便用户可以为每个参数输入一个值?
特别是尽可能不破坏 MVVM。我能看到的问题是;
- 将 ParameterInfo 渲染为 Label 和与其类型相关的数据输入组件
- 将数据输入组件绑定到 ViewModel 中的某些内容,以便可以使用该值
目前我正在考虑使用 ParameterInfo 的自定义类型或元组以及该参数的当前值。然后我可以使用 DataTemplates 来显示正确的数据输入组件(DatePicker Vs. TextBox Vs. ComboBox)。
注意在 winforms 中,这是通过PropertyGrid实现的,有一个开源 WPF 项目试图实现相同的目标,但由于项目在依赖项方面的限制,我宁愿使用我自己的实现。