加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

如何在WPF应用程序中构建动态数据输入表单?

发布时间:2020-12-14 16:33:36 所属栏目:资源 来源:网络整理
导读:我正在计划一个 WPF应用程序 能够创建动态数据输入表单(意味着表单从数据库中的数据获取要显示的字段,它们的顺序等,而不是来自XAML) 如果可能,使用MVVM模式 以下是我计划如何进行的:在客户数据输入视图中,我将设置数据上下文: UserControl.DataContext vm:
我正在计划一个 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获取的数据(firstname,lastname)和元数据(字段标签,字段名称,字段帮助文本,字段显示顺序等)的集合构建Grid.

>有没有人构建一个可以这种方式创建动态表单的WPF应用程序?
>你使用MVVM模式吗?
>是否可以以这种方式使用MVVM模式,或者MVVM模式是否预先假定View模型中直接绑定到View中静态元素的静态字段?

解决方法

您必须为各种字段数据类型编写数据模板,以便WPF根据其类型选择如何显示数据.这种格式的东西:

注意:这不是WPF只是伪代码

<DataTemplate DataType="{x:Type DateTime}">
  <DatePicker Value="{Binding}"/>
</DataTemplate>  
<DataTemplate DataType="{x:Type String}">
  <TextBox Text="{Binding}"/>
</DataTemplate>

它不一定是原始类型.它可以是电子邮件,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;} 
}

..等等…

更新

在MSDN上查看此WPF动态UI示例:Dynamic Data Entry with WPF and LINQ

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读