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