Что мне нужно сделать, на мой взгляд, чтобы Prism.Uno работал с x:Bind?
У меня опыт работы с WPF / Prism, но мне очень нравится то, что предлагает X:Bind. Как мне заставить x:Bind работать с моей ViewModel при использовании Prism.Uno?
У меня есть призма:ViewModelLocator.AutoWireViewModel="True", но мне кажется, что мне чего-то не хватает в моем понимании того, как это работает при проектировании.
Спасибо G
1 ответ
Решение
Использование x:Bind
требует, чтобы путь привязки был основан на представлении.
Чтобы использовать DataContext, вам нужно сделать его доступным через представление, например:
public partial class MyControl : INotifyPropertyChanged
{
#if !HAS_UNO
// Uno already defines this event (it will be removed
// in the future to be aligned properly with WinUI)
public event PropertyChangedEventHandler PropertyChanged;
#endif
public MainPage()
{
this.InitializeComponent();
DataContextChanged +=
(s, e) => PropertyChanged?.Invoke(
this,
new PropertyChangedEventArgs(nameof(ViewModel)));
}
public MyViewModel ViewModel => DataContext as MyViewModel;
}