0
我有下面的類人:綁定CLR對象WPF控制使用Microsoft表達混合
public class Person
{
public string Name
{
get { return name; }
set { name = value; }
}
public string Nickname
{
get { return nickname; }
set { nickname = value; }
}
private string nickname;
private string name;
public Person(DataRow row)
{
this.name = Convert.ToString(row["Name"]);
this.nickname = Convert.ToString(row["Nickname"]);
}
}
,並在不同的裝配另一類PersonEditorFormController,其作用類似於在發動機爲WPF類PersonEditorForm.xaml:
public class PersonEditorFormController
{
public Person SelectedPerson
{
get { return person; }
set { person = value; }
}
private Person person;
public void GetPerson(string name)
{
try
{
Common.dbController.OpenConnection();
Common.dbController.BeginTransaction();
PersonController personController= new PersonController();
string[] fields = new string[] { "Name" };
string[] values = new string[] { name };
this.person = personController.GetPerson(fields, values);
Common.dbController.CommitTransaction();
}
catch (Exception ex)
{
throw ex;
}
finally
{
Common.dbController.CloseConnection();
}
}
}
PersonController是一個類,它提供了從數據庫獲取數據和構造person對象的方法。
現在,PersonEditorForm.xaml有一個名爲NicknameTextBox的文本框。我想使用Microsoft Expression Blend將人的暱稱綁定到其Text屬性。我怎麼做?
這裏是我試過至今(沒有成功):
- 我創造了新的對象數據源到LayoutRoot指向我的引擎類,即PersonEditorFormController。
- 我爲NicknameTextBox的Text屬性創建了數據綁定 - 我在Data Context選項卡中從PersonEditorForm中選擇了SelectedPerson.Nickname。
我創建了下面的窗口中加載事件來填充SelectedPerson屬性:
private void Window_Loaded(object sender, System.Windows.RoutedEventArgs e) { PersonEditorFormController controller = this.LayoutRoot.GetValue(Grid.DataContextProperty) as PersonEditorFormController; controller.GetPerson("Some_name"); }
請幫助。謝謝。
感謝SLacks,解決了它! – Boris 2010-07-13 12:31:47