将MVF画布保存为MVVM模式后的图像

Rol*_*lfi 6 c# wpf mvvm icommand

我有一个画布,例如类似于这个解决方案或许多其他使用ItemsControl.

现在我想要一个应该绑定到ICommand的按钮.此命令应调用ViewModel类的方法,该方法可以保存图像.保存方法很明确,但如何在MVVM模式之后进行绑定?

Jen*_*ens 8

您可以使用CommandParameter将Canvas传递给ViewModel的Save方法

<Button Content="Save" 
        Command="{Binding SaveCanvasCommand}" 
        CommandParameter="{Binding ElenementName=myCanvas}" ?>

<Canvas x:Name="myCanvas">
   <!-- Stuff to save -->
</Canvas>
Run Code Online (Sandbox Code Playgroud)

在你的ViewModel或Command中的某个地方

void SaveCanvasCommandExecute(object parameter)
{
    UIElement toSave = (UIElement)parameter;
    //.. You'd probably use RenderTargetBitmap here to save toSave.
}
Run Code Online (Sandbox Code Playgroud)