,사용자 정의 컨트롤에서 바인드 가능 명령을 작성하는 방법은 무엇입니까? 내 SomeCustomControl에서 다음과 같은 코드를 가정
public class SomeViewModel{
ICommand ReloadCommand{get...}
ICommand SaveCommand{get..}
}
//SomeView.xaml
<SomeCustomControl Reload="ReloadCommand" Save="SaveCommand" /> //NOT SURE HOW??
//SomeCustomContro.xaml
<SomeCustomControl x:Name="someCustomControl">
<Button Command={Binding ElementName=someCustomControl, Path=Reload />
<Button Command={Binding ElementName=someCustomControl, Path=Save />
</SomeCustomControl>
//SomeCustomControl.xaml.cs
..... //NOT SURE HOW TO ALLOW BINDING TO A ICOMMAND ??
, 나는 "XAML에서 ICommand의 결합"을 지원해야합니다. DependencyProperties가 이와 같이 바인딩 될 수 있음을 이해합니다. 그러나이 경우 ICommand를 바인딩해야합니다.
누군가가이 작업을 수행하는 가장 좋은 방법을 제안 할 수 있습니까? 방향이 누락 되었기 때문에 제시된 자료 나 링크가 사용됩니다.
EDIT 1) SomeCustomControl에서 DataContext SomeView를 사용할 수 있습니다. 내가 분해 할 수없는 두 가지 논리와 분리가 더 있습니다. 필자는 SomeCustomControl 어딘가에 Reload/Save ICommands에 대한 참조를 유지해야합니다.
고마워요.
당신은 내가 직접 바인딩 할 수 있습니다 의미합니까 ICommand 인스턴스를 컨트롤의 속성에 ?? 또한, "CreateReloadCommand"는 무엇입니까? 이 명령 인스턴스는 ViewModel에서 만들어지며 SomeCustomControl은 xaml 바인딩을 사용하여 해당 인스턴스 참조를 저장하면됩니다. –
ICommand 타입의 값을 원하는대로 바인딩 할 수 있습니다. 바인딩에 대한 가장 중요한 의존성 속성은'ButtonBase.CommandProperty'입니다. 'CreateReloadCommand'는 커맨드를 생성하는 메소드입니다. 커맨드 생성과 초기화 코드를 쓰고 싶지 않았습니다. 내 대답을 타이핑 할 때, 코드에서 명령을 (나중에 변경 했음) 명령을 사용합니다. –