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