Привязка к пользовательскому BindableProperty не работает ⇐ C#
Привязка к пользовательскому BindableProperty не работает
У меня возникли проблемы с привязкой значений к имеющемуся у меня пользовательскому ContentView.
У меня есть ContentPage, который использует AccountStatusView, который является ContentView и имеет BindableProperty. Это BindableProperty имеет тип AccountStatus. Когда я пытаюсь использовать привязку, BindableProperty никогда не обновляется.
Кто-нибудь знает, почему это не работает?
MainPage — xaml
MainPage — C#
публичный частичный класс MainPage: ContentPage { общественный MainPage (ViewModel vm) { BindingContext = vm; ИнициализироватьКомпонент(); } } Модель просмотра
публичный частичный класс ViewModel: ObservableObject { [ObservableProperty] частный AccountStatusDto _accountStatus; // . . . общедоступная асинхронная задача InitializeAsync() { AccountStatus = ждут _repo.GetAccountStatus(); } } AccountStatusView
публичный частичный класс AccountStatusView: ContentView { общедоступный статический только для чтения BindableProperty AccountStatusProperty = BindableProperty.Create(nameof(AccountStatus), typeof(AccountStatusDto), typeof(AccountStatusView), propertyChanged: DoSomething); public static void DoSomething (привязываемый BindableObject, старое значение объекта, новое значение объекта) { // делаем что-то с новым значением } общедоступный статус аккаунтаDto AccountStatus { get => (AccountStatusDto) GetValue (AccountStatusProperty); set => SetValue (AccountStatusProperty, значение); } } ИЗМЕНИТЬ Я нашел этот ответ от ToolmakerSteve
При создании пользовательского компонента (включая XAML) НЕ устанавливайте BindingContext = это;
И
ДОСТУП К СВОЙСТВАМ КОМПОНЕНТА ЧЕРЕЗ x:Name
Решение: присвойте пользовательскому компоненту (карте) имя x:Name и сделайте его «Источник» этих привязок:
У меня возникли проблемы с привязкой значений к имеющемуся у меня пользовательскому ContentView.
У меня есть ContentPage, который использует AccountStatusView, который является ContentView и имеет BindableProperty. Это BindableProperty имеет тип AccountStatus. Когда я пытаюсь использовать привязку, BindableProperty никогда не обновляется.
Кто-нибудь знает, почему это не работает?
MainPage — xaml
MainPage — C#
публичный частичный класс MainPage: ContentPage { общественный MainPage (ViewModel vm) { BindingContext = vm; ИнициализироватьКомпонент(); } } Модель просмотра
публичный частичный класс ViewModel: ObservableObject { [ObservableProperty] частный AccountStatusDto _accountStatus; // . . . общедоступная асинхронная задача InitializeAsync() { AccountStatus = ждут _repo.GetAccountStatus(); } } AccountStatusView
публичный частичный класс AccountStatusView: ContentView { общедоступный статический только для чтения BindableProperty AccountStatusProperty = BindableProperty.Create(nameof(AccountStatus), typeof(AccountStatusDto), typeof(AccountStatusView), propertyChanged: DoSomething); public static void DoSomething (привязываемый BindableObject, старое значение объекта, новое значение объекта) { // делаем что-то с новым значением } общедоступный статус аккаунтаDto AccountStatus { get => (AccountStatusDto) GetValue (AccountStatusProperty); set => SetValue (AccountStatusProperty, значение); } } ИЗМЕНИТЬ Я нашел этот ответ от ToolmakerSteve
При создании пользовательского компонента (включая XAML) НЕ устанавливайте BindingContext = это;
И
ДОСТУП К СВОЙСТВАМ КОМПОНЕНТА ЧЕРЕЗ x:Name
Решение: присвойте пользовательскому компоненту (карте) имя x:Name и сделайте его «Источник» этих привязок:
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
BindableProperty из компонента не передает изменение на вызывающую страницу
Anonymous » » в форуме C# - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-