partial void AddElba(Id sender) { NSMutableDictionary homeAddr, workAddr; ABMutableMultiValue multiValue; // Get the address book - there is only one. ABAddressBook ab = ABAddressBook.SharedAddressBook; // Create a record. ABPerson person = new ABPerson(); // Set value in record for first name property. person.SetValueForProperty((NSString) "Able", AddressBookFramework.kABFirstNameProperty); // Set value in record for last name property. person.SetValueForProperty((NSString) "Elba", AddressBookFramework.kABLastNameProperty); // kABAddressProperty is a multiValue. // It's values, such as kABAddressHomeLabel, have in turn keys, // such as kABAddressStreetKey. // Create and populate a NSDictionary with some kABAddressHomeLabel keys. homeAddr = new NSMutableDictionary(); homeAddr[AddressBookFramework.kABAddressStreetKey] = (NSString) "123 Home Dr."; homeAddr[AddressBookFramework.kABAddressCityKey] = (NSString) "Home City"; homeAddr[AddressBookFramework.kABAddressStateKey] = (NSString) "CA"; homeAddr[AddressBookFramework.kABAddressZIPKey] = (NSString) "94110"; homeAddr[AddressBookFramework.kABAddressCountryKey] = (NSString) "United States"; // Create and populate a NSDictionary with some kABAddressWorkLabel keys. workAddr = new NSMutableDictionary(); workAddr[AddressBookFramework.kABAddressStreetKey] = (NSString) "123 Home Dr."; workAddr[AddressBookFramework.kABAddressCityKey] = (NSString) "Home City"; workAddr[AddressBookFramework.kABAddressStateKey] = (NSString) "CA"; workAddr[AddressBookFramework.kABAddressZIPKey] = (NSString) "94110"; workAddr[AddressBookFramework.kABAddressCountryKey] = (NSString) "United States"; // Create an ABMultivalue and add the kABAddressHomeLabel and // kABAddressWorkLabel NSDictionaries multiValue = new ABMutableMultiValue(); multiValue.AddValueWithLabel(homeAddr, AddressBookFramework.kABAddressHomeLabel); multiValue.AddValueWithLabel(workAddr, AddressBookFramework.kABAddressWorkLabel); // Set value in record for kABAddressProperty. person.SetValueForProperty(multiValue, AddressBookFramework.kABAddressProperty); multiValue.Release(); // kABPhoneProperty is a multivalue. // Create and populate a multiValue. multiValue = new ABMutableMultiValue(); multiValue.AddValueWithLabel((NSString) "408-974-0000", AddressBookFramework.kABPhoneWorkLabel); multiValue.AddValueWithLabel((NSString) "408-974-1111", AddressBookFramework.kABPhoneHomeLabel); multiValue.AddValueWithLabel((NSString) "408-974-2222", AddressBookFramework.kABPhoneMobileLabel); multiValue.AddValueWithLabel((NSString) "408-974-3333", AddressBookFramework.kABPhoneMainLabel); multiValue.AddValueWithLabel((NSString) "408-974-4444", AddressBookFramework.kABPhoneHomeFAXLabel); multiValue.AddValueWithLabel((NSString) "408-974-5555", AddressBookFramework.kABPhoneWorkFAXLabel); multiValue.AddValueWithLabel((NSString) "408-974-6666", AddressBookFramework.kABPhonePagerLabel); // Set value in record for kABPhoneProperty. person.SetValueForProperty(multiValue, AddressBookFramework.kABPhoneProperty); multiValue.Release(); // Add record to the Address Book if (ab.AddRecord(person)) { // Save the Address Book if (ab.Save()) { Console.WriteLine("Success"); } } person.Release(); }