首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用变频器控制Xamarin结合

用变频器控制Xamarin结合
EN

Stack Overflow用户
提问于 2019-08-20 03:31:52
回答 1查看 52关注 0票数 0

我正在尝试创建一个文本框(编辑器),在该文本框中,当person在其中键入时,它会减少剩余的字符数,并在标签中显示“56个剩余字符”。我知道如何编写转换器,但目前调用转换器时的参数是null。转换器的参数200。即使我移除编辑器绑定并将其设置为“Text=”“Hello”,当调用转换器时,该值仍然为空。

标签和编辑器的定义如下:

代码语言:javascript
复制
<Label 
    BindingContext="{x:Reference CommentEditor}"
    Text="{Binding Path=Text, 
    Converter={StaticResource CharactersRemainingConverter}, ConverterParameter=200}"/>

<Editor 
    x:Name="CommentEditor"
    Text="{Binding Comment}" 
    Placeholder="Comment up to 200 characters" 
    MaxLength="200">
</Editor>

有人能看出是怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-20 05:11:48

你可以这样改变:

代码语言:javascript
复制
<ContentPage.Resources>
    <ResourceDictionary>
        <local:CharactersRemainingConverter x:Key="charactersRemainingConverter" />
    </ResourceDictionary>
</ContentPage.Resources>
<Label 
   BindingContext="{x:Reference CommentEditor}"
   Text="{Binding Path=Text.Length, 
   Converter={StaticResource charactersRemainingConverter}, ConverterParameter=200}"/>

<Editor 
   x:Name="CommentEditor"
   Text="{Binding Comment}" 
   Placeholder="Comment up to 200 characters" 
   MaxLength="200">
</Editor>

CharactersRemainingConverter中:

代码语言:javascript
复制
  public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return string.Format("{0} characters remaining",(int.Parse((string)parameter) - (int)value));
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57566385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档