Xamarin Forms 将属性绑定到标签的文本

Posted

技术标签:

【中文标题】Xamarin Forms 将属性绑定到标签的文本【英文标题】:Xamarin Forms bind property to label's text 【发布时间】:2016-12-30 10:22:09 【问题描述】:

我有 Xamarin Forms xaml:

// MainPage.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:local="clr-namespace:BlankAppXamlXamarinForms"
             x:Class="BlankAppXamlXamarinForms.MainPage">

<Label Text="Binding myProperty" />

</ContentPage>

我还有代码:

// MainPage.xaml.cs
namespace BlankAppXamlXamarinForms 
    public partial class MainPage : ContentPage
    
        public string myProperty= "MY TEXT";

        public MainPage()
        
            InitializeComponent();
            BindingContext = this;
        
    

它应该将 myProperty 绑定到标签的文本。但是,标签中没有显示任何内容。如何将 myProperty 绑定到标签的文本? (我知道我应该使用 ViewModel 来通知视图有关属性的更改,但在此示例中,我真的只想将 myProperty 从后面的代码绑定到标签)

【问题讨论】:

【参考方案1】:

您需要声明您可以“获取”该变量。

public string myProperty  get;  = "MY TEXT";

如果你真的想在代码中改变这个变量,你的类需要实现 INotifyPropertyChanged,否则它总是“MY TEXT”

【讨论】:

...您必须在更改内容后调用 'OnPropertyChanged(nameof(myProperty));* INotifyPropertyChanged 在我的情况下不需要,但@copa017 是的,这很关键。谢谢! 嘿@robbpriestley,你为什么不添加INotifyPropertyChanged

以上是关于Xamarin Forms 将属性绑定到标签的文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xamarin Forms 中的数据绑定指定的位置放置文本

将 ListView 标签绑定到属性

用于绑定的 Xamarin.Forms MarkupExtension

Xamarin.Forms 中附加属性的绑定问题

Xamarin Forms + Mvvmcross绑定命令不起作用

Xamarin Forms 将不同字体大小的标签垂直对齐到同一基线