【问题标题】:Calling a method from Usercontrol xaml.cs to View Model从 Usercontrol xaml.cs 调用方法以查看模型
【发布时间】:2014-02-28 07:05:37
【问题描述】:
我在我的项目中使用 MVVM,我正在实现图表设计器,我正在使用 Telerik 的 RAD 图表控件。我正在将形状从我的 RadToolBox 拖到我已经实现事件的画布上。现在在这个事件上我一旦形状被拖放到画布(标尺)上,想要将图表保存在 RavenDB 中。这整个事情都在存储在一个库中的用户控件中,我正在以我在其他库中的实际 WPF 表单创建该库的引用.我的要求是我想从用户控件的 xaml.cs 中调用 WPF 表单视图模型中存在的保存命令,并且此用户控件存在于其他库中。
我该如何达到同样的效果。请帮忙。
【问题讨论】:
标签:
c#
wpf
xaml
mvvm
telerik
【解决方案1】:
为什么会有多个程序集?如果您不需要它们,那么让您的生活更简单,只需使用 NameSpaces 将您的控件与同一程序集中的表单分开。
现在是这样说的:-)
简单的方法是通过事件。将事件添加到您的UserControl,然后在Window 中添加事件发生时的代码。
阅读MSDN Events
【解决方案2】:
我真的不知道为什么您需要从另一个 WindowsForm 调用保存命令。
Telerik UI Diagram 提供了用于保存图表的未定义保存命令,
在 XAML 中,
<Grid.CommandBindings>
<CommandBinding Command="telerik:DiagramCommands.Save" Executed="ExecuteSave" />
</Grid.CommandBindings>
并且在代码后面定义保存函数,
private void ExecuteSave(object sender, ExecutedRoutedEventArgs e)
{
e.Handled = true;
this.diagram.save();
}