我正在计划一个 WPF 应用程序,它将
- 能够创造动态数据输入表格(这意味着表单从数据库中的数据而不是从 XAML 获取要显示的字段及其顺序等)
- 如果可能的话使用 MVVM 模式
我计划这样做:在客户数据输入视图中,我将设置数据上下文:
<UserControl.DataContext>
<vm:DynamicFormViewModel/>
</UserControl.DataContext>
然后在我的 XAML 中包含一个元素作为表单的占位符:
<UserControl.Content>
<view:DynamicFormView x:Name="CustomerEntry"/>
</UserControl.Content>
然后在我的 ModelView 中我不想有静态属性,但我想将 XAML 构建为 ASP.NET 中的一个内置 HTML 控件,以这种方式:
View view = new View();
view.Children.Add(...)
以这种方式,基于 ViewModel 从 Model 获取的数据(名字、姓氏)和元数据(字段标签、字段名称、字段帮助文本、字段显示顺序等)集合构建网格。
- 有没有人构建过可以通过这种方式创建动态表单的 WPF 应用程序?
- 你使用了MVVM模式吗?
- 是否可以以这种方式使用 MVVM 模式,或者 MVVM 模式是否预先假定视图模型中的静态字段直接绑定到视图中的静态元素?
您必须为各种字段数据类型编写数据模板,以便 WPF 根据数据类型选择如何显示数据。这种格式的东西:
注意:这不是 WPF,只是伪代码
<DataTemplate DataType="{x:Type DateTime}">
<DatePicker Value="{Binding}"/>
</DataTemplate>
<DataTemplate DataType="{x:Type String}">
<TextBox Text="{Binding}"/>
</DataTemplate>
它不必是原始类型。它可以是一个Email
, DateApproved
甚至是一个Url
类类型。例如
class Customer
{
public Email Email{get;set;}
public DateTime DateApproved{get;set;}
public URI Url{get;set;}
}
public class Email
{
public string Type{get;set;}
public string Value{get;set;}
}
..etc...
Update
查看 MSDN 上的 WPF 动态 UI 示例:使用 WPF 和 LINQ 进行动态数据输入 http://code.msdn.microsoft.com/dynamicWPF/Release/ProjectReleases.aspx?ReleaseId=1201
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)