Xamarin.forms 在Xamarin表单中,为什么我的标签&x27;iOS中StackLayout中的文本绑定中断?

Xamarin.forms 在Xamarin表单中,为什么我的标签&x27;iOS中StackLayout中的文本绑定中断?,xamarin.forms,xamarin.ios,Xamarin.forms,Xamarin.ios,我试图在StackLayout中放置一个标签,但一旦这样做,文本绑定就会停止工作,整个控件也不会显示(我知道,因为它工作时有一个红色背景) 为什么Text=“{Binding Object.ObjectStringProperty}”不起作用?我只在iOS中看到这种行为,而不是Android,所以我认为这可能是一个bug,除非我遗漏了一些明显的东西?所以我无法真正理解您是如何实现它的,但这就是它的主要实现方式,而且做得很好 您首先需要像这样在页面上建立一个BindingContext。使用M

我试图在StackLayout中放置一个标签,但一旦这样做,文本绑定就会停止工作,整个控件也不会显示(我知道,因为它工作时有一个红色背景)



为什么
Text=“{Binding Object.ObjectStringProperty}”
不起作用?我只在iOS中看到这种行为,而不是Android,所以我认为这可能是一个bug,除非我遗漏了一些明显的东西?

所以我无法真正理解您是如何实现它的,但这就是它的主要实现方式,而且做得很好

您首先需要像这样在
页面上建立一个
BindingContext
。使用MVVM,每个页面都有自己的ViewModel。ViewModel具有可通过绑定技术在XAML代码中引用的属性

public MyPage {
    BindingContext = new MyPageViewModel();
}

public class PageViewModel {

    public ObjectStringProperty = "Example";
}

<StackLayout Grid.Row="0" Orientation="Horizontal">
    <Label Text="{Binding ObjectStringProperty}" HorizontalOptions="StartAndExpand" FontSize="12" Style="{StaticResource LabelStyle}" BackgroundColor="Red" />
    <Other control with working binding/>
</StackLayout>
公共MyPage{
BindingContext=新的MyPageViewModel();
}
公共类页面视图模型{
public ObjectStringProperty=“示例”;
}

您可能缺少一些明显的功能,因为这是一个基本的通用功能。我很肯定你做错了什么。您的
BindingContext
是什么?您的属性是否实际命名为“Object”?如果将其重命名为与系统类型不同的名称,该怎么办?抱歉,我的简化代码名称选择不当,请参阅edit@Greggz,我认为xaml中没有BindingContext集。在我尝试将标签添加到stacklayout之前,我没有意识到我需要一个标签,因为标签刚开始工作?@Chucky我会给你一个例子说明应该如何做。
public MyPage {
    BindingContext = new MyPageViewModel();
}

public class PageViewModel {

    public ObjectStringProperty = "Example";
}

<StackLayout Grid.Row="0" Orientation="Horizontal">
    <Label Text="{Binding ObjectStringProperty}" HorizontalOptions="StartAndExpand" FontSize="12" Style="{StaticResource LabelStyle}" BackgroundColor="Red" />
    <Other control with working binding/>
</StackLayout>