Hi Jon,
your business objects should not know anything about your GUI, your GUI should know about your business objects but not vice versa. So you do not want a populate method in your business object, what you need to do at some point in your form code is to populate your GUI, tis can be done either by hand coding or by DataBinding. An example of hand coding would be like below, at some point in your GUI you will create one of your business objects, then you will pass your business object into a method where you update your GUI:
using System;
using System.Windows.Forms;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MyForm f = new MyForm();
f.UserClicksButton();
}
}
class MyForm : Form
{
private Label label1 = new Label();
public void UserClicksButton()
{
Person p = new Person("bob");
UpdateGui(p);
}
private void UpdateGui(Person p)
{
this.label1.Text = p.Name;
}
}
class Person
{
private string name;
public Person(string name)
{
this.name = name;
}
public string Name
{
get
{
return this.name;
}
}
}
}
DataBinding allows you to in effect bind properties of objects i.e. the Name property to controls so that they automatically update, this is a good link to some basic tutorials on that: http://msdn.microsoft.com/vstudio/express/visualCSharp/learning/
Hope that helps
Mark.