У меня есть базовый пользовательский элемент управления:Xamarin.Forms связывания с использованием SetBinding не работает
public class TabItem : ContentView
{
public TabItem()
{
SetBinding(HeaderProperty, new Binding("Header"));
}
public static readonly BindableProperty HeaderProperty =
BindableProperty.Create("Header", typeof(string), typeof(TabItem), default(string));
public string Header
{
get { return (string)GetValue(TabItem.HeaderProperty); }
set { SetValue(TabItem.HeaderProperty, value); }
}
}
Я выводим из этого класса и установить Binding контекст:
public partial class FeedbackView : TabItem
{
public FeedbackView(FeedbackViewModel viewModel)
{
InitializeComponent();
Content.BindingContext = viewModel;
}
}
Это вид модели:
public class FeedbackViewModel : BaseViewModel
{
private string header;
public FeedbackViewModel()
{
Header = "Test Header";
}
public string Header
{
get { return header; }
set
{
header = value;
OnPropertyChanged("Header");
}
}
Когда я запускаю его - заголовок не привязывается к свойству viewmodel. Есть ли что-то очевидное, что я забыл? Или я делаю что-то неправильно?
Похоже, что вы забыли реализовать 'INotifyPropertyChanged' в' FeedbackViewModel'. – Wosi
@Wosi Извините, я забыл, что мой 'FeedbackViewModel' получен из класса BaseViewModel, где уже реализовано' INotifyPropertyChanged'. Я редактирую код. –