我在Xamarin数据绑定方面遇到了一点问题。 当绑定到C#类中的项时,我会看到标题中的错误。 我一直在尝试从这里找到的表示例中绑定一个元素。 我尝试将bindingContext=this;
添加到构造函数中,并将类声明上方的行更改为[DesignTimeVisible(false)]
,就像在创建项目期间找到的Master-Detail模板中的NewItempage
那样,但是没有任何帮助。
下面是代码:
XAML:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="NetworkScanner.Views.TestPage">
<TableView>
<TableRoot>
<TableSection Title="Getting Started" BindingContext="{x:Reference Table}">
<ViewCell>
<StackLayout Orientation="Horizontal">
<Image Source="bulb.png" />
<Label Text="left"
TextColor="#f35e20" />
<Label Text="right"
HorizontalOptions="EndAndExpand"
TextColor="#503026" />
</StackLayout>
</ViewCell>
</TableSection>
</TableRoot>
</TableView>
</ContentPage>
C#:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Xamarin.Forms.Xaml; namespace NetworkScanner.Views { [XamlCompilation(XamlCompilationOptions.Compile)] // [DesignTimeVisible(false)] public partial class TestPage : ContentPage { public TableSection Table { get; set; } public TestPage() { InitializeComponent(); // BindingContext = this; } } }
必须使用关键字Binding而不是x:reference。
<TableSection Title="Getting Started" BindingContext="{Binding Table}">