在绑定中使用+时,Visual Studio WPF设计器崩溃

时间:2013-10-28 19:12:02

标签: c# wpf visual-studio-2010 mvvm

我的Visual Studio 2010设计器因此错误而崩溃:

Error   3   Type 'vm:MessageViewModel+MessageAction' was not found.

这是导致错误的行:

<Button Content="View" Command="{Binding Path=ActionCommand}" CommandParameter="{x:Static vm:MessageViewModel+MessageAction.OpenView}"/>

请记住,程序编译并运行正常。该参数甚至可以正确传递给命令。

枚举在一个类中,所以我需要使用加号来引用它。这是类结构:

public class MessageViewModel : ModelWrapViewModel<MessageModel>
{
    private ICommand _actionCommand;

    public enum MessageAction
    {
        OpenView,
        OpenNote,
        OpenAcknowledge,
        Cancel,
        Save,
        Acknowledge
    }

    public ICommand ActionCommand
    {
        get
        {
            if (_actionCommand == null)
            {
                _actionCommand = new RelayCommand(
                    param => this.DoSomething((MessageAction)param),
                    param => true
                );
            }
            return _actionCommand;
        }
    }

}

只是想知道这是不是在VS设计师中不起作用的原因。如果我将枚举移到MessageViewModel类之外,设计师就不会崩溃。

1 个答案:

答案 0 :(得分:1)

视觉工作室有时可能会有痛苦吗?不确定这是否有用,但是你可以将它变为动态资源,因此它只在运行时加载。希望这会有所帮助 - 里克 CommandParameter =“{DynamicResource {x:Static vm:MessageViewModel + MessageAction.OpenView}}”/&gt;