Итак, я недавно только что переделал структуру проекта моего более крупного приложения в MVVM, однако я пытаюсь сделать простое связывание меток и не могу заставить что-либо работать вообще.Я, наверное, просто немного глуп и упускаю очевидную вещь, но не могу понять это.В настоящее время я не пытаюсь сделать это в ObservableCollection, потому что в настоящее время я не могу даже заставить работать основы.Просто простая метка.
Мой класс TaskModel содержит
public class TaskModel
{
public string Title { get; set; }
}
Моя MainViewModel содержит
public class MainViewModel
{
TaskModel task = new TaskModel
{
Title = "Hello"
};
}
Мой MainPage Xaml содержит
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Testing"
x:Class="Testing.MainPage"
xmlns:bc="clr-namespace:Testing.ViewModels">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness"
iOS="0, 20, 0, 0"
Android="0, 40, 0, 0">
</OnPlatform>
</ContentPage.Padding>
<StackLayout BindingContext="{x:Reference Slider}" HorizontalOptions="Center" VerticalOptions="Center">
<BoxView Color="Green" Opacity="{Binding Value}"></BoxView>
<Label BindingContext="{x:Reference Slider}" Text="{Binding
Value,
StringFormat='Value is {0:F2}'}"
Opacity="{Binding Value}">
</Label>
<Slider x:Name="Slider" ></Slider>
<Label Text="{Binding TaskModel.Hello}"></Label>
</StackLayout>
И тогда мой MainPage.Xaml.CS содержит
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
BindingContext = new MainViewModel();
}
}
Так что, как видите, ничего особенного.Чувствую себя немного глупо, что я не могу решить это, и любая помощь в этом вопросе будет принята с благодарностью!
РЕДАКТИРОВАТЬ:
Игнорировать дополнительный XAML, XAML над надписью на базеЯ просто тестирую другое связывание на той же странице XAML, которое работает, просто пытаюсь заставить его связываться за пределами страницы, если вы понимаете, что я говорю.