【问题标题】:Xamarin forms FormattedText binding not updating for uwpXamarin 形成 FormattedText 绑定不为 uwp 更新
【发布时间】:2017-01-04 02:19:11
【问题描述】:

我正在使用Visual Studio 2015 PCL与以下代码将标签格式标签绑定到ViewModel中的属性,并且在选择按钮时,属性值更改。此代码在 android 中运行良好,但不会在 win 10 中更新。我还没有尝试过 ios。在 win 10 中,当标签最初被重视时,它工作正常,但在选择按钮时不会改变。我可以看到属性更改和属性更改触发,但看不到更新视图。如果我的代码不正确或者这是 win 10 的错误,请告诉我。感谢您的帮助。

XAML <local:BindableLabel x:Name="labelInformation" Style="{StaticResourceLabelInformationStyle}" Height="{Binding InformationDisplayHeight}" FormattedText="{Binding InformationData}" IsVisible="{Binding VisibleInformation}"/>

viewmodel
private FormattedString informationData;
public FormattedString InformationData
{
  get
  {
      return informationData;
}

  set
  {
    if (value != informationData)
    {
        informationData = value;
         OnPropertyChanged();
    }
   }
}

private void InformationSelected()
{
   InformationData = informationFormattedString(informationString));
   VisibleInformation = true;
}

private FormattedString informationFormattedString(string string1)
{
    FormattedString formattedString = new FormattedString();

    //define formatted string using string1

     return formattedString;
}

【问题讨论】:

    标签: c# xaml xamarin xamarin.forms


    【解决方案1】:

    这是用于 WinRT 的 LabelRenderer 中的错误。作为解决方法,您可以使用更改 Label.Text 属性来更新 FormattedText。 我试图在my pull request修复它

    【讨论】:

    • 这非常有效。彻底解决了我的问题。谢谢!
    【解决方案2】:

    您能否在普通标签上尝试相同的绑定而不是自定义标签,如果它有效,我认为您的自定义标签声明有问题。

    【讨论】:

    • 感谢您的建议,但我已经尝试使用标签而不是我的自定义标签,我得到了相同的结果,标签显示文本没有变化。此外,我将 FormattedText 更改为 Text 并将 FormattedString 更改为 string 并且它会完美更新,当然文本没有格式化。
    • 你可以为你的标签添加一个固定的高度和宽度吗,只是为了测试这个问题可能是由于标签的小高度或宽度或两者兼而有之。
    • 我使用 BindableLabel 和 Label 设置了高度和宽度 (WidthRequest="600" HeightRequest="2000"),但仍然得到相同的结果。此问题出现在 win 10 手机和台式机上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 2018-06-27
    • 2020-01-16
    • 2016-01-28
    • 2018-07-14
    • 2019-03-29
    • 2020-07-13
    相关资源
    最近更新 更多