0

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クラスの外に移動しても、デザイナーはクラッシュしません。

4

1 に答える 1

1

ビジュアルスタジオは時々苦痛になることがありますか?これが役立つかどうかはわかりませんが、実行時にのみロードされるように動的リソースにすることはできますか。これがお役に立てば幸いです - Rick CommandParameter="{DynamicResource {x:Static vm:MessageViewModel+MessageAction.OpenView}}"/>

于 2013-10-28T22:59:59.647 に答える