主页上的Silverlight按钮,链接到命令,从不调用该方法

时间:2012-07-18 15:16:15

标签: wpf silverlight button icommand delegatecommand

我对Silverlight来说是全新的,而且我已经深入到了我的脑海中,所以我可能会遗漏一些非常明显的东西。我正在使用图像编辑器,我的主页上有一个按钮,用于在画布上旋转图像或文本。但是按钮没有调用我的旋转方法。编辑:现在。

这是我写的与按钮相关的所有代码

MainPage.xaml

<Button Command="{Binding Path=Project.RotateCWElementCommand}"..../>

Project.cs -

#region properties

public ICommand RotateCWElementCommand { get; set; }

#endregion

#region methods
public Project(int siteID)
    {
        this.RotateCWElementCommand = new DelegateCommand(RotateCWElement, CanRotateCWElement);
    }

    private void RotateCWElement(object param)
    {
        FrameworkElement element = this.SelectedElement;
        RotateTransform cwRot = new RotateTransform();

        cwRot.Angle = 90;
        cwRot.CenterX = element.ActualWidth * 0.5;
        cwRot.CenterY = element.ActualHeight * 0.5;
        element.RenderTransform = cwRot;

    }

#end region

#region Command conditions

private bool CanRotateCWElement(object param)
    {
        return true;
    }

#endregion

现在的问题是它只会旋转一次,而且某些图像质量也会丢失。当我点击并拖动它们时,图像会奇怪地移动,有时当我点击完整的图像质量时,图像会恢复。

如果有人对此有任何想法,那就太好了。

2 个答案:

答案 0 :(得分:1)

听起来Button.DataContext不包含名为Project.RotateCWElementCommand

的属性

验证您的按钮DataContext是否有名为Project的属性,并且Project有一个名为RotateCWElementCommand的属性

答案 1 :(得分:0)

Visual Studio中的输出窗口非常有助于在Silverlight中查找绑定问题,并有助于澄清Rachel的建议是否存在问题。