Xamarin.forms 在Xamarin表单中,为什么我的标签&x27;iOS中StackLayout中的文本绑定中断?
我试图在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
为什么
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>