在我看来,我需要做什么才能让 Prism.Uno 与 x:Bind 一起工作?
What do I need to do in my view to make Prism.Uno work with x:Bind?
我有 WPF/Prism 背景,但我真的很喜欢 X:Bind 提供的功能。使用 Prism.Uno 时如何让 x:Bind 与我的 ViewModel 一起工作?
我有 prism:ViewModelLocator.AutoWireViewModel="True",但我似乎在设计时对它的工作原理的理解有所遗漏。
谢谢
G
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;
}
我有 WPF/Prism 背景,但我真的很喜欢 X:Bind 提供的功能。使用 Prism.Uno 时如何让 x:Bind 与我的 ViewModel 一起工作?
我有 prism:ViewModelLocator.AutoWireViewModel="True",但我似乎在设计时对它的工作原理的理解有所遗漏。
谢谢 G
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;
}