我在 Xamarin 中使用 Prism 7.1 的部分视图功能,其中 ContentView 可以拥有自己的 ViewModel。与视图模型的绑定工作正常。但是,我还想设置一个 BindableProperty。例如,我想在 ContentView 上设置一个 Title 属性。如果 ContentView 没有自己的 ViewModel,则绑定工作正常。如果它确实有自己的 ViewModel,则永远不会发生绑定。
MainPage.xaml
<controls:CustomContentView Title="My Custom View Title"
mvvm:ViewModelLocator.AutowirePartialView="{x:Reference self}"/>
CustomContentView.cs:
public static readonly BindableProperty TitleProperty =
BindableProperty.Create(
nameof(Title),
typeof(string),
typeof(CustomContentView));
public string Title
{
get => (string)GetValue(TitleProperty);
set => SetValue(TitleProperty, value);
}
CustomContentView.xaml:
<ContentView.Content>
<StackLayout>
<Label Text="{Title}" />
</StackLayout>
</ContentView.Content>
如果我在 Title 的 set 方法上设置断点,它永远不会被命中,并且 Label 控件中的 Title 永远不会被绑定。