【问题标题】:Entry textcolor when text comes from data binding文本来自数据绑定时输入 textcolor
【发布时间】:2019-09-03 20:44:56
【问题描述】:

我正在开发一个安卓应用程序。我有一个条目,其中的文本绑定到视图模型的属性。我正在尝试更改条目的 textcolor (textcolor="white"),但它不起作用。如果我将绑定更改为静态文本 (text="test"),则 textcolor 会更改为指定的颜色。

<Entry Keyboard="Numeric" Text="{Binding Number}" HorizontalOptions="EndAndExpand" TextColor="White"   >

【问题讨论】:

  • 我无法重现所描述的问题。可能需要更多上下文。如果绑定由于某种原因无法正常工作,那么可能是您看到的占位符文本的颜色可以通过条目的 PlaceholderColor 属性进行更改(无需自定义渲染器)。
  • 嗯,你确定你的绑定有效吗?
  • 我的错,我有一个行为设置来确保输入的值只是一个正数。如果不是,我将 textcolor 设置为红色,否则设置为默认颜色。我认为默认设置是样式。谢谢大家。
  • 请提供反馈
  • Batuhan,问题是由于我在该条目上设置的行为造成的。我不需要代码,尽管您提供的代码似乎可以完成工作。

标签: xamarin xamarin.android


【解决方案1】:

你可以在入口定义TextChanged属性,

<Entry TextChanged="OnTextChanged" /> // in xaml 

void OnTextChanged (object sender, TextChangedEventArgs e) //in cs
{
    Entry entry = sender as Entry;
    if(!string.IsNullOrEmpty(entry.Text))
    {
       entry.BackgroundColor = Color.White;
    }
}

或者通过名称属性直接访问您的条目。

<Entry Name="MyEntry" /> //like this in xaml 

MyEntry.TextChanged += (sender, e) =>  //in cs
{
   var entry = sender as Entry;
   if (!string.IsNullOrEmpty(entry.Text))
   {
      entry.BackgroundColor = Color.White;
   } 
};

【讨论】:

    【解决方案2】:

    我有一个行为设置来确保输入的值只是一个正数。如果不是,我将 textcolor 设置为红色,否则设置为默认颜色。我认为默认值是在 style 属性中设置的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-10
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      相关资源
      最近更新 更多