У меня есть два UITableView в одном UIViewController. tblView1 и tblView2.
Оба TableViews передают данные динамически. Теперь моя проблема: я хочу загрузить данные в tblView2 на основе SelectedRow из tblView1.
Например, когда я выбираю название компании из tblView1, тогда tblView2 должен заполнить список «Автомобили, произведенные этой компанией».
У меня есть rowIndex моей первой таблицы (tblView1), но я не могу связать свой tblView2 с помощью метода RowSelected tblView1. Мне нужна помощь в привязке моего tblView2. Как я могу это сделать?
с использованием системы; использование System.Collections.Generic; использование System.IO; используя System.Linq; использование System.Text; использование System.Xml.Serialization; использование CoreGraphics; использование Фонда; использование UIKit; Таблицы пространства имен { общедоступный частичный класс ViewController: UIViewController { защищенный ViewController (дескриптор IntPtr): база (дескриптор) { // Примечание: этот .ctor не должен содержать никакой логики инициализации. } публичный ViewController() { //tblView2.Source = новый CompanyModelsSource(); // Примечание: этот .ctor не должен содержать никакой логики инициализации. } публичное переопределение void ViewDidLoad() { база.ViewDidLoad(); если (tblView1!= ноль) { tblView1.Source = новый CarModelsSource(); } // Выполняем любые дополнительные настройки после загрузки представления, обычно из пера. } публичное переопределение void DidReceiveMemoryWarning() { base.DidReceiveMemoryWarning(); // Освободите все кэшированные данные, изображения и т. д., которые не используются. } } класс CompanyModelsSource: UITableViewSource { частный список _Companies; NSString _cellID = новый NSString («TableCell»); общедоступная компанияModelsSource() { _Companies = CompanyTableSource.AllCompany(); } общедоступное переопределение nint RowsInSection (табличное представление UITableView, раздел nint) { // сообщаем TableView, сколько строк нужно создать вернуть _Companies.Count; } общедоступное переопределение void RowSelected (UITableView tableView, NSIndexPath indexPath) { //Я не могу получить доступ к своему tblView2 в этом методе. Итак, где я могу связать свой другой UITableView? UILabel lblTotalFacilities = новый UILabel(); lblTotalFacilities.Layer.BackgroundColor = UIColor.Blue.CGColor; lblTotalFacilities.Frame = новый CGRect(305, 200, 1024, 400); ViewController vc = новый ViewController(); vc.View.AddSubview(lblTotalFacilities); } публичное переопределение UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath) { Компания currentCompany = _Companies[indexPath.Row]; вар ячейка = tableView.DequeueReusableCell(_cellID) как CompanyTableCell; если (ячейка == NULL) {ячейка = новый CompanyTableCell (_cellID); } cell.UpdateCellControlsWithAuditData(currentCompany.Name); возвратная ячейка; } } общедоступный класс CompanyTableSource { публичная компанияTableSource() { } общедоступный статический список AllCompany() { CompanyCollection CC = ноль; строка path1 = путь + «Companies.xml»; Сериализатор XmlSerializer = новый XmlSerializer(typeof(CompanyCollection)); Читатель StreamReader = новый StreamReader (путь1); CC = (CompanyCollection) сериализатор. Десериализовать (читатель); читатель.Закрыть(); Список comp = CC.CompanyCollection.Cast().ToList(); вернуть комп; } } общедоступный класс CompanyTableCell: UITableViewCell { UILabel nameLabel; public CompanyTableCell (NSString cellId): база (UITableViewCellStyle.Default, cellId) { SelectionStyle = UITableViewCellSelectionStyle.Gray; ContentView.BackgroundColor = UIColor.FromRGB(54, 194, 36); вар newFont = UIFont.SystemFontOfSize(12); nameLabel = новый UILabel(); nameLabel.Font = новый шрифт; ContentView.AddSubviews(новый UIView[] {nameLabel}); } public void UpdateCellControlsWithAuditData (имя строки) { nameLabel.Text = Имя; } публичное переопределение void LayoutSubviews() { base.LayoutSubviews(); nameLabel.Frame = новый CGRect(10, 0, 350, 33); } } }
