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

本文关键字:崩溃 绑定 WPF Studio Visual | 更新日期: 2023-09-27 18:37:22

我的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类之外,设计器不会崩溃。

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

Visual Studio有时可能很痛苦不是吗?不确定这是否有帮助,但您能否使其成为动态资源,使其仅在运行时加载。希望这有帮助 - 里克CommandParameter="{DynamicResource {x:Static vm:MessageViewModel+MessageAction.OpenView}}"/>