我来自 WPF / Prism 背景,但我真的很喜欢 X:Bind 提供的功能。使用 Prism.Uno 时,如何让 x:Bind 与我的 ViewModel 一起工作?
我有 prism:ViewModelLocator.AutoWireViewModel="True" 但我似乎在理解设计时它的工作原理时遗漏了一些东西。
谢谢G
我来自 WPF / Prism 背景,但我真的很喜欢 X:Bind 提供的功能。使用 Prism.Uno 时,如何让 x:Bind 与我的 ViewModel 一起工作?
我有 prism:ViewModelLocator.AutoWireViewModel="True" 但我似乎在理解设计时它的工作原理时遗漏了一些东西。
谢谢G
的使用x:Bind
要求绑定路径植根于View。
要使用 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;
}