假设象下面这样的代码,如何在自定义控件中创建可绑定的命令?
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 ??
在我SomeCustomControl,我需要支持 “在XAML ICommand的结合”。 我明白DependencyProperties可以像这样绑定,但在这种情况下,我需要绑定ICommand。
有人可以请建议什么是最好的方法来做到这一点? 任何建议的材料或链接都可以使用,因为我错过了一个方向。
编辑1)我可以在SomeCustomControl中使用DataContext SomeView。两者之间有更多的逻辑和分离,我无法解散。我必须在我的SomeCustomControl的某处保留一个Reload/Save ICommands的引用。
非常感谢。
你的意思是我可以直接绑定ICommand实例到控件中的属性?另外,什么是“CreateReloadCommand”?这个命令实例将在ViewModel中创建,并且SomeCustomControl只需要存储该实例引用(使用xaml绑定)。 –
你可以将ICommand类型的值绑定到任何你想要的,绑定最有意义的依赖属性是'ButtonBase.CommandProperty'。 'CreateReloadCommand'是创建你的命令的方法 - 我不想编写命令创建和初始化代码。当我键入我的答案时,您的代码中有命令的方法(稍后您已更改它们)。 –