Если это MasterPageItem
относится к классу, который обычно создается для обработки выбора меню при добавлении MasterDetailPage
в ваш проект, он действительно не имеет BindableProperty
.
Это модель по умолчанию, которую мы используем:
public class MainPageMenuItem
{
public MainPageMenuItem()
{
TargetType = typeof(MainPageDetail);
}
public int Id { get; set; }
public string Title { get; set; }
public Type TargetType { get; set; }
}
Если вы хотите использовать связывание, вам нужно сделать этот класс BindableObject
, а затем изменить его свойство на привязываемое.
Как это:
public class MainPageMenuItem : BindableObject
{
public MainPageMenuItem()
{
TargetType = typeof(MainPageDetail);
}
public readonly static BindableProperty IdProperty = BindableProperty.Create(nameof(Id), typeof(int), typeof(MainPageMenuItem));
public int Id
{
get { return (int)GetValue(IdProperty); }
set { SetValue(IdProperty, value); }
}
public readonly static BindableProperty TitleProperty = BindableProperty.Create(nameof(Title), typeof(string), typeof(MainPageMenuItem));
public string Title
{
get { return (string)GetValue(TitleProperty); }
set { SetValue(TitleProperty, value); }
}
public readonly static BindableProperty TargetTypeProperty = BindableProperty.Create(nameof(TargetType), typeof(Type), typeof(MainPageMenuItem));
public Type TargetType
{
get { return (Type)GetValue(TargetTypeProperty); }
set { SetValue(TargetTypeProperty, value); }
}
}
Надеюсь, это поможет.