WPF非常初学者问题 - 设置默认控制值

时间:2015-12-16 17:30:36

标签: wpf

这是来自WPF新手的一个非常基本的问题。 我有一个带有一些控件的表单,例如TextBoxes,DatePickers。 在典型的Windows窗体中,我会在onFormLoad事件中为这些设置默认值,如

txtName.Text = "N/A";
dpStartDate.Value = DateTime.Now(5); //set 5 days from now
dpEndDate.Value = DateTime.Now(10); //set 10 days from now

如何在WPF格式中执行此操作?这是一个非常初学的问题,在哪里做正确的WPF方式

更新: 到目前为止,我发现我可以在Window_Loaded事件中执行此操作,如:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    // Initialize Employee Data
    txtName.Text = "N/A";
    dpEmplDate.Text = DateTime.Now.AddDays(-100).Date.ToString();
    dpTermDate.Text = DateTime.Now.AddDays(1).Date.ToString();
    txtAddress.Text = "N/A";
    dpDateOfBirth.Text = "";
    txtDepartment.Text="N/A";
    ...
    ...
}

所以,我正在设置这样的默认员工价值。 我的问题是,这是正确的WPF初始化数据的方式吗? 谢谢,

1 个答案:

答案 0 :(得分:1)

在您不使用MVVM pattern.之前,没有首选项将值设置为Controls

您可以在XAML中执行此操作:

<TextBox Name=txtName Text="N/A"/>

或代码隐藏:

txtName.Text = "N/A";

但WPF是非常酷的技术,因为它可以提供数据和视图之间关注点的清晰分离。它可以使用MVVM模式实现。 可以使用Binding在数据和视图之间以及从视图到数据之间发送数据。因此在MVVM模式中,数据是从view model设置的。语法示例:

查看:

<TextBox Text="{Binding FooProperty}"/>>

<强>视图模型:

public class FooViewModel
{
    private string fooProperty="Hello World";        
    public string FooProperty
    {
        get { return fooProperty; }
        set { fooProperty = value; }
    }
}

DataContext属性用于连接ViewViewModel。如果不设置ViewModel属性,则不会显示DataContext中的数据。