WPF에서 릴레이 명령을 어떻게 사용할 수 있습니까?
-
21-08-2019 - |
문제
어떻게 사용할 수 있습니까? RelayCommand
WPF에서?
해결책
릴레이 명령은 WPF에 존재하지 않으며, 정의 된 후에 눈에 띄게 제기 된 외부 클래스 일뿐입니다. 이 MSDN 기사. 사용하려면 직접 써야합니다.
그렇지 않으면 WPF 툴킷의 대의원 명령을받을 수 있습니다. 여기 릴레이 커뮤니케이션 코드에 비해 약간의 추가 기능이 있습니다.
아,이 답변을 입력하는 동안 질문이 바뀌 었습니다. 위에서 정의 된대로 릴레이 공무원을 사용한다고 가정하면 한두 명의 대표단과 함께 제공해야합니다. 하나 또는 두 명의 대표단, 명령이 실행될 유효한 상태인지 여부를 결정하는 부울을 반환하고 아무것도 반환하지 않고 실제로 실행되는 두 번째 대의원을 반환해야합니다. 명령. "Canrun"Delegate를 제공하지 않으면 명령은 항상 유효한 상태에 있다고 생각합니다. 기사에 사용 된 코드 :
RelayCommand _saveCommand;
public ICommand SaveCommand
{
get
{
if (_saveCommand == null)
{
_saveCommand = new RelayCommand(param => this.Save(),
param => this.CanSave );
}
return _saveCommand;
}
}
트리거 될 때 Save () 메소드를 호출하는 릴레이 명령을 선언하고 유효성 테스트로 캔 스 세이브 속성을 반환합니다. 이 명령이 WPF의 버튼에 바인딩되면 버튼의 iSenabled 속성은 뷰 모드의 캔 범위 속성과 일치하며 버튼을 클릭하면 (활성화되었다고 가정) Save () 메소드가 뷰 모드에서 호출됩니다.
다른 팁
창조의 대안으로 RelayCommand
모든 방법에 대한 포장지는 제본을 사용할 수있는 무료 라이브러리와 소스를 제안 할 수 있습니다. {BindTo Save()}
. 바인딩을 단순화하기 위해 만들었습니다. 또한 상대적인 결합을 훨씬 쉽게 만듭니다. 여기에서 찾을 수 있습니다. http://www.simplygoodcode.com/2012/08/simpler-wpf-binding.html