使用BoolToObjectConverter设置BackgroundColor属性失效问题咨询
问题原因与解决办法
核心问题
你设置的BoolToObjectConverter返回的是字符串类型(比如"Colors.Red"),但BackgroundColor属性需要的是Color类型的对象,字符串无法被识别为有效颜色,所以只能显示默认白色;而Text属性本身接受字符串,所以能正常显示"Colors.Red"文本。
解决方法
修改资源字典中的转换器定义,用{x:Static}标记扩展直接引用Colors类的静态颜色属性,这样转换器返回的就是Color类型对象,能被BackgroundColor正确识别:
<ResourceDictionary> <toolkit:BoolToObjectConverter x:Key="BoolToColorConverter" TrueObject="{x:Static Colors.Red}" FalseObject="{x:Static Colors.Blue}"/> </ResourceDictionary>
额外提示
你的Text绑定逻辑有误,当前会把颜色文本显示在Chip上,应该改成你实际需要展示的文本内容,比如:
<syncfusion:SfChip Text="首页" BackgroundColor="{Binding IsCurrentPage, Converter={StaticResource BoolToColorConverter}}" TextColor="Black"/>
内容的提问来源于stack exchange,提问作者Frank Mehlhop
相关产品推荐
相关产品推荐

