У меня была аналогичная проблема для проекта, который имеет две цели (с их собственным MainWindow XIB). Основная проблема, вызвавшая эту ошибку для меня, заключалась в том, что класс UIViewController не был включен в список ресурсов второго проекта. То есть конструктор интерфейса позволил мне указать его в MainWindow.xib, но во время выполнения система не смогла найти класс.
I.e. cmd-click в рассматриваемом классе UIViewController и дважды проверьте, что он включен в вкладку «Цели».
Чтобы получить доступ к элементу управления Forms в коде, вам необходимо присвоить ему имя, используя атрибут x:Name
в XAML:
<ListView HorizontalOptions="Center" x:Name="MyList" />
в коде :
MyList.ItemsSource = myData;
В Xamarin есть ошибка, в которой VS не видит определенного x: Name http://forums.xamarin.com/discussion/25409/problem-with-xaml-x-name-and-access -from-code-behind
Предположим, вы определили изображение в XAML:
<Image x:Name="myImageXName" />
Тогда это должно работать в коде позади:
this.FindByName<Image>("myImageXName");
В моем случае проблема заключалась в отсутствии строки XamlCompilation(XamlCompilationOptions.Compile)]
в файле .xaml.cs.
Пример:
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
BindingContext = new MainPageViewModel();
}
...
}