当我试图创建自己的自定义行为时,绑定到可观察属性不起作用。在任何社区mvvm工具包平台行为中也不起作用:
https://github.com/CommunityToolkit/Maui/tree/main/src/CommunityToolkit.Maui/Behaviors/PlatformBehaviors
以StatusBarBehavior
为例,编写如下内容
<ContentPage.Behaviors>
<toolkit:StatusBarBehavior StatusBarColor="{Binding StatusBarColorProp}" StatusBarStyle="LightContent" />
</ContentPage.Behaviors>
在视图模型中创建属性
[ObservableProperty]
private Color _statusBarColorProp;
你会看到状态栏的颜色不会随着StatusBarBehavior
属性在运行时的改变而改变。其他行为也一样。它对StatusBarColor="Red"
这样的非绑定setter也很有效。
我想知道这是一个功能或错误,或我错过了什么。
2条答案
按热度按时间xytpbqjk1#
我可以复制你的问题。事实证明,我们只能改变
StatusBarColor
的颜色,要么在代码后面,如下面所示,要么像你提到的StatusBarColor="Red"
的非绑定设置器。第一个
当绑定到一个可观察的属性时,它无法改变
StatusBarColor
的颜色。这可能是一个潜在的问题,我建议你在Github中引发一个Bug Report。new9mtju2#
请在github maui issues上提交一个错误问题。
在此期间,尝试这个恶心的黑客在你的财产之一: