Мне нужна помощь с основами Xamarin.Forms в Visual Studio 2017, пожалуйста.Я написал класс для хранения определенных свойств, которые я могу связать на своей странице контента.Я прочитал несколько примеров, но каждый раз я все еще не могу понять это правильно!
Когда я компилирую страницу, появляется метка
<Label
Text="TestBinding"
Grid.Row="0"
Grid.Column="0"
HorizontalOptions="Start"
WidthRequest="100"
VerticalOptions="Center"/>
, но
<Label
Text="{Binding TestBinding}"
Grid.Row="0"
Grid.Column="1"
HorizontalOptions="Start"
WidthRequest="100"
VerticalOptions="Center"/>
появляется пустым вместо текста Test binding
так ясно, что я что-то не так
Пожалуйста, кто-нибудь может подсказать, что мне не хватает
Я сократил код доздесь что-то простое. Поэтому я считаю, что мой класс просмотра -
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using Xamarin.Forms;
namespace FitRestults_Dev1
{
public class AddStudentView : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
string _testtext="Test binding";
public string TestBinding
{
get=> _testtext;
set
{
if (string.Equals(_testtext, value))
return;
_testtext = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(TestBinding)));
}
}
public ObservableCollection<GradeCollection> GradeCollection { get; set; }
public AddStudentView()
{ }
}
}
И моя страница контента -
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="FitRestults_Dev1.AddStudent"
xmlns:local="clr-namespace:FitRestults_Dev1.AddStudentView;assembly=FitRestults_Dev1"
BindingContext="x:local "
>
<ContentPage.Content>
<StackLayout Padding="10" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Grid>
<Label Text="TestBinding " Grid.Row="0" Grid.Column="0" HorizontalOptions="Start" WidthRequest="100" VerticalOptions="Center"/>
<Label Text="{Binding TestBinding} " Grid.Row="0" Grid.Column="1" HorizontalOptions="Start" WidthRequest="100" VerticalOptions="Center"/>
</Grid>
<Button Text="Save" HorizontalOptions="FillAndExpand" BackgroundColor="Blue" TextColor="White" Clicked="Save_Clicked" />
<Button Text="Cancel" HorizontalOptions="FillAndExpand" BackgroundColor="Blue" TextColor="White" Clicked="Cancel_Clicked" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
И, наконец, за кодом страницы стоит
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace FitRestults_Dev1
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class AddStudent : ContentPage
{
public AddStudentView Source = new AddStudentView();
public AddStudent ()
{
InitializeComponent ();
BindingContext = Source;
}
async void Save_Clicked(object sender, System.EventArgs e)
{
var personItem = (Student)BindingContext;
await App.Database.SaveStudentAsync(personItem);
await Navigation.PopAsync();
}
async void Cancel_Clicked(object sender, System.EventArgs e)
{
await Navigation.PopAsync();
}
}
}