目標:想在viewModel中動態改變控件的一些屬性。
要求:在某一個控件的一個特定事件觸發后,改變另一個控件的一些屬性。
想法:創建一個RelayCommand類,實現ICommand接口,大概代碼如下:
????????????public class RelayCommand:ICommand
?????????? {
??????????????????????Action _handler;
????????????????????? public RelayCommand(Action handler)
???????????????????????? {
????????????????????????????????? _handler=handler;
??????????????????????????}
???????????????????????? ...........
?????????????? }
????????? 同時在viewmodel中暴露一個ICommand屬性,如下:
???????????ICommand _certainHandler;
?????????? public ICommand CertainHandler
????????? {
????????????????????? get{ return??? _certainHandler=new RelayCommand(處理方法簽名);}
?????????? }
????????? 在xaml中的控件上通過<i:Interaction:Trigger>
?????????????????????????????????????????????? <i:EventTrigger EventName='.....'>
????????????????????????????????????????????????? <i:InvokeCommandAction Command={"Binding ..."}/>
????????????????????????????????????????????? </i:EventTrigger>
???????????????????????????????????????? </i:Interaction:Trigger>
問題:如何在方法簽名中獲得view中的控件?還用RelayCommand<T>一般是用在什么情況,如何使用?
如何viewModel中引用view對象
慕桂英3389331
2018-12-06 19:12:13