我有一个在 ContentControl 中加载用户控件的父窗口。父窗口有一个带有一些按钮的工具栏(即保存按钮)。我想分配将在用户控件内处理的那些按钮命令。
我需要从用户控件的 ViewModel 管理我自己的 ICommand 命令,因此总结一下:用户单击“保存”按钮(在主窗口上),因此该按钮触发用户控件处理的事件以将信息保存在控件中。
这可能吗?
最佳答案
有两种方法可以做到这一点。
由于您的窗口包含 UserControl,因此您需要进行设置,以便 Window 具有对 UserControl ViewModel 的引用(假设它被称为 UserControlViewModel)。如果您在 UserControlViewModel 中有一个命令,则可以通过调用以下命令绑定(bind)到该命令: UserControlViewModel.Command 类似:
<Button x:Name="Save" Content="Save" Command="{Binding UserControlViewModel.SaveCommand}">
同样,您的窗口需要引用实现事件处理程序的类。您可以在 Window XAML 文件中包含以下内容:
<Button x:Name="Save" Content="Save" Clicked="SaveButtonClicked"/>
然后在你后面的代码中,
private void SaveButtonClicked( .... sender, .... e)
{
UserControlClass.SaveData();
// or using command
UserControlClass.MyCommand.Execute()
}
关于wpf - 使用 MVVM 将父窗口的事件绑定(bind)到 UserControl 内部处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6618315/