Почему вы вставляете ViewModel
в свой пользовательский элемент управления?
Это странно и даже неправильно. Идея пользовательского элемента управления заключается в том, что вы можете повторно использовать его и связать с родительским ViewModel
. Подумайте о простом элементе управления Button
, его можно использовать повторно, просто поместив его на экран и установив BindableProperties
, например Text
, Command
и т. Д. Он работает, потому что по умолчанию он BindingContext
такой же, как это родитель.
В вашем случае вы как бы изолируете свой элемент управления от любых модификаций, поскольку вы устанавливаете BindingContext
в закрытый пользовательский класс ViewModel
. Вы должны пересмотреть свое решение.
Это должно быть так просто:
public partial class MyView : ContentView
{
public static readonly BindableProperty IDProperty = BindableProperty.Create(
nameof(ID),
typeof(int),
typeof(MyView),
15);
public int ID
{
get => (int)GetValue(IDProperty);
set => SetValue(IDProperty, value);
}
public MyView()
{
InitializeComponent();
}
}