在您展示的示例中,您使用的是 Monotouch.Dialog 的简单反射 API。虽然这很好也很容易,但它确实限制了你可以做的事情。我建议学习使用 Monotouch.Dialog 的 Elements API ( http://docs.xamarin.com/guides/ios/user_interface/monotouch.dialog/elements_api_walkthrough ),它可以让您更好地控制每个项目表,并能够检测到变化等。
每个表格单元格(例如,名称是一个单元格,您可以对其进行编辑)在某些事情发生时具有操作/事件,例如更改文本。
例如,可以使用执行以下操作的元素 API 制作上面的屏幕。
public class ExpenseViewController : DialogViewController
{
EntryElement nameEntry;
public ExpenseViewController() : base(null, true)
{
Root = CreateRootElement();
// Here is where you can handle text changing
nameEntry.Changed += (sender, e) => {
SaveEntryData(); // Make your own method of saving info.
};
}
void CreateRootElement(){
return new RootElement("Expense Form"){
new Section("Expense Entry"){
(nameEntry = new EntryElement("Name", "Enter expense name", "", false))
},
new Section("Expense Details"){
new EntryElement("Description", "", "", false),
new BooleanElement("Approved", false, ""),
new RootElement("Category", new Group("Categories")){
new CheckboxElement("Travel", true, "Categories"),
new CheckboxElement("Personal", false, "Categories"),
new CheckboxElement("Other", false, "Categories")
}
}
};
}
void SaveEntryData(){
// Implement some method for saving data. e.g. to file, or to a SQLite database.
}
}
考虑这些领域以开始使用 Elements API: 来源:https ://github.com/migueldeicaza/MonoTouch.Dialog
MT.D 介绍:http ://docs.xamarin.com/guides/ios/user_interface/monotouch.dialog
MT.D 元素演练:http ://docs.xamarin.com/guides/ios/user_interface/monotouch.dialog/elements_api_walkthrough