繁体   English   中英

Xamarin表单-标签TextColor不会通过绑定更新

[英]Xamarin Forms - Label TextColor doesn't update by Binding

因此,基本上,我有一个Button列表。 当您单击其中之一时,其Label TextColor就会更改。 为了实现它,我使用了{Binding value}但是它不起作用..我试图抛出一个事件,但是..什么都没有发生..我试图直接从Label设置它并且它起作用..为什么?

我在C#部分中有以下代码:

private Color GroupSuperModLabelColor { get; set; }
private void OnGroupsClicked(object sender, EventArgs ea)
{
    if (GroupSuperModLabelColor == App.NL_White)
        GroupSuperModLabelColor = App.NL_OrangeBeer;
    else
        GroupSuperModLabelColor = App.NL_White;
    this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(GroupSuperModLabelColor)));

    //If I don't add this line, then it doesn't work, WHY?
    GroupLabel.TextColor = GroupSuperModLabelColor;

    Debug.WriteLine("OnGroupsClicked clicked !");
}

有XAML部分的声明:

<AbsoluteLayout HeightRequest="{Binding SuperModHeightSize}" WidthRequest="{Binding SuperModWidthSize}">
  <control:CustomLabel x:Name="GroupLabel" Text="Groups" FontFamily="{extension:FontFamily Roboto_Light}" FontSize="20" TextColor="{Binding GroupSuperModLabelColor}"
                       HorizontalTextAlignment="Center" VerticalTextAlignment="Center"
                       AbsoluteLayout.LayoutBounds="0.5, 0.5, 1, 1"
                       AbsoluteLayout.LayoutFlags="All"/>
  <control:CustomButton BackgroundColor="Transparent" BorderColor="Transparent"
                        Clicked="OnGroupsClicked" LongPress="OnGroupsLongPress"
                        AbsoluteLayout.LayoutBounds="0.5, 0.5, 1, 1"
                        AbsoluteLayout.LayoutFlags="All"/>
  </AbsoluteLayout>

我的Binding上下文设置为此,并且其他所有Binding东西都起作用。.仅仅是颜色,似乎不起作用。

为什么? 预先感谢

您的GroupSuperModLabelColor未声明为可绑定属性: https : //developer.xamarin.com/guides/xamarin-forms/xaml/bindable-properties/

您必须更改声明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM