C#WPF页面信息

时间:2013-12-31 18:11:47

标签: wpf wpf-controls

我的项目中有一堆WPF userContol,带有一堆文本框和日期选择器,当用户点击最后一页上的提交按钮时,想法是从所有页面获取所有数据,并填写pdf表单

    <UserControl x:Class="FormFiller.Pages.UserInfo"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="600">
    <Grid>
        <Label x:Name="lblName" Content="EMPLOYEE'S NAME (Last, First, Middle Initial)" HorizontalAlignment="Left" Margin="1,55,0,0" VerticalAlignment="Top" Width="263" Foreground="#FF151212" FontSize="12" FontFamily="Times New Roman" FontWeight="Bold"/>
        <TextBox x:Name="txtBoxEmpName" HorizontalAlignment="Left" Height="23" Margin="23,90,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="201">
            <TextBox.BorderBrush>
                <LinearGradientBrush EndPoint="0,20" MappingMode="Absolute" StartPoint="0,0">
                    <GradientStop Color="#FFABADB3" Offset="0.05"/>
                    <GradientStop Color="#FFE2E3EA" Offset="0.07"/>
                    <GradientStop Color="#FF8DC1F5" Offset="1"/>
                </LinearGradientBrush>
            </TextBox.BorderBrush>
        </TextBox>
        <Label x:Name="lblDateAssigned" Content="DATE ASSIGNED PRESENT POSITION" HorizontalAlignment="Left" Margin="338,55,0,0" VerticalAlignment="Top" Foreground="#FF151212" FontFamily="Times New Roman" FontWeight="Bold"/>
        <DatePicker x:Name="DpAssigned" HorizontalAlignment="Left" Margin="357,90,0,0" VerticalAlignment="Top" Width="178"/>
        <Label x:Name="lblduedate" Content="DUE DATE OF WITHIN-GRADE INCREASE" HorizontalAlignment="Left" Margin="1,158,0,0" VerticalAlignment="Top" Width="241" FontFamily="Times New Roman" FontWeight="Bold"/>
        <DatePicker x:Name="DpDue" HorizontalAlignment="Left" Margin="23,196,0,0" VerticalAlignment="Top" Width="179"/>
        <Label x:Name="lblPeriod" Content="PERIOD COVERED BY THIS PERFORMANCE PLAN" HorizontalAlignment="Left" Margin="298,158,0,0" VerticalAlignment="Top" Width="298" FontFamily="Times New Roman" FontWeight="Bold"/>
        <DatePicker x:Name="DpFrom" HorizontalAlignment="Left" Margin="323,201,0,0" VerticalAlignment="Top"/>
        <Label x:Name="lblFrom" Content="From" HorizontalAlignment="Left" Margin="346,184,0,0" VerticalAlignment="Top" FontFamily="Times New Roman" FontWeight="Bold"/>
        <Label x:Name="lblTo" Content="To" HorizontalAlignment="Left" Margin="509,184,0,0" VerticalAlignment="Top" FontFamily="Times New Roman" FontWeight="Bold"/>
        <DatePicker x:Name="DpTo" HorizontalAlignment="Left" Margin="471,201,0,0" VerticalAlignment="Top"/>
    </Grid>
</UserControl>

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:1)

创建一个ViewModel,其中包含每个FrameworkElements的字段并设置绑定,以便在用户与它们交互时更新这些字段。然后将RelayCommand添加到ViewModel并将“Submit”按钮的命令处理程序绑定到它。当调用RelayCommand的处理程序时,所有数据都可以使用您喜欢的任何PDF第三方库进行保存。