Wpf / winforms从对象创建文本框和标签

时间:2014-04-15 17:50:28

标签: c# wpf vb.net winforms object

我经常发现自己在创建具有大量属性的大型对象,例如客户数据对象,包括诸如以下属性; 名字 姓 地址1 地址2 地址3

等等,我必须编写一个接口,为每个属性使用标签和文本框,给它们两个id,这可能会在一段时间后变得有点乏味。

是否有任何宏观或源代码的孩子会为我做这样的事情?我在Google上搜索过,但我认为我没有完全搜索到,因为我不能完全确定我在寻找什么。

1 个答案:

答案 0 :(得分:0)

我假设您想要某种方式动态生成控件,尝试类似这样的

public MainWindow()
    {
        InitializeComponent();
        CreateControls();
    }

    private void CreateControls()
    {
        var c = new Customer("SomeFirstName", "SomeLastName", "Something");
        PropertyInfo[] pi = c.GetType().GetProperties();
        Label lbl;
        TextBox tb;
        StackPanel sp = new StackPanel();
        sp.Orientation = Orientation.Horizontal;
        foreach (var p in pi)
        {
            MessageBox.Show(p.Name);
            lbl = new Label();
            lbl.Content = p.Name;

            tb = new TextBox();
            tb.Text = p.GetValue(c, null).ToString();

            sp.Children.Add(lbl);
            sp.Children.Add(tb);
        }
       //Replace MainGrid with any control you want these to be added.
        MainGrid.Children.Add(sp);
    }


}

public class Customer
{
    public Customer(string first, string last, string title)
    {
        FirstName = first;
        LastName = last;
        Title = title;
    }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Title { get; set; }
}