我正在尝试创建一个文本框(编辑器),在该文本框中,当person在其中键入时,它会减少剩余的字符数,并在标签中显示“56个剩余字符”。我知道如何编写转换器,但目前调用转换器时的值参数是null。转换器的参数为200。即使我移除编辑器绑定并将其设置为“Text=”“Hello”,当调用转换器时,该值仍然为空。
标签和编辑器的定义如下:
<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>有人能看出是怎么回事吗?
发布于 2019-08-20 05:11:48
你可以这样改变:
<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中:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return string.Format("{0} characters remaining",(int.Parse((string)parameter) - (int)value));
}https://stackoverflow.com/questions/57566385
复制相似问题