那些做测评的网站好,wordpress html标签,中国最新军事动态中国最新军事新闻,网站seo推广方案前言
在使用MVVM进行WINUI或WPF开发时#xff0c;Command在某些时候并不能满足逻辑与UI分离的要求。这时肯定就需要其它技术的支持#xff0c;Behavior就是一种。在WPF中是有Behavior直接支持的#xff0c;转到WINUI后#xff0c;相对有一些麻烦#xff0c;于是在此记录之…前言
在使用MVVM进行WINUI或WPF开发时Command在某些时候并不能满足逻辑与UI分离的要求。这时肯定就需要其它技术的支持Behavior就是一种。在WPF中是有Behavior直接支持的转到WINUI后相对有一些麻烦于是在此记录之以备忘。 开发环境
WIN11
VS2022
Nuget包Microsoft.Xaml.Behaviors.WinUI.Managed 如何使用Behavior
1. 首先安装Microsoft.Xaml.Behaviors.WinUI.Managed
当前(2024/6/6)的最新版本为2.0.9。
2. 在需要使用的Page引用Interactivity和Interactions xmlns:Interactivityusing:Microsoft.Xaml.Interactivity xmlns:Interactionsusing:Microsoft.Xaml.Interactions.Core
3. 在需要的控件添加相应的Behavior
以下以InvokeCommandAction即是调用VM中的Command为示例更多详细操作可参见Github相应文档链接为InvokeCommandAction · microsoft/XamlBehaviors Wiki · GitHub
Button x:Namebutton1Interactivity:Interaction.BehaviorsInteractions:EventTriggerBehavior EventNameClick SourceObject{Binding ElementNamebutton1}Interactions:InvokeCommandAction Command{Binding UpdateCountCommand}//Interactions:EventTriggerBehavior/Interactivity:Interaction.Behaviors
/Button
若调用的Command有参数时参数添加示例如下
Interactions:InvokeCommandAction Command{x:Bind ViewModel.UserNameChangedCommand}
CommandParameter{Binding ElementNameUserNameTextBox, PathText} /Behavior添加注意事项
若有参数时请一定要在控件的Content内添加Behavior不可将它的Behavior添加到集中管理的Behaviors中。
如将UserNameTextBox的Behavior添加到下述的Behaviors那么它的的参数CommandParameter可能就会获取不到。 Interactivity:Interaction.BehaviorsInteractions:EventTriggerBehavior EventNameTextChanged SourceObject{Binding ElementNameUserNameTextBox}Interactions:InvokeCommandAction Command{Binding UserNameChangedCommand} CommandParameter{Binding ElementNameUserNameTextBox, PathText} //Interactions:EventTriggerBehaviorInteractions:EventTriggerBehavior EventNameLoad SourceObject{Binding ElementNameTestPage}Interactions:InvokeCommandAction Command{Binding PageLoadCommand}//Interactions:EventTriggerBehavior/Interactivity:Interaction.Behaviors
原因可能是集中管理的Behaviors在所在层的可视化树上找不到UserNameTextBox这个SourceObject于是就不能正确获取到它的文本。此后续弄清原因再做更新…… 参考链接
GitHub - microsoft/XamlBehaviors: This is the official home for UWP XAML Behaviors on GitHub.
以上链接为XamlBehaviors的仓库地址及引入Microsoft.Xaml.Behaviors.WinUI.Managed的源码及更加详尽的介绍。