Что мне нужно сделать, на мой взгляд, чтобы 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;

}
Другие вопросы по тегам