Caliburn Micro & 价值转换器

Caliburn Micro & Valueconvertor

当使用 Caliburn.Micro 事件的简写语法时,我们如何传递 Enum(通过 ValueConvertor)?

<MenuItem Header="Open" cal:Message.Attach="[Event Click]=[Action ShowDesigner(<what goes here ?>,'False')]"/>

其中 ShowDesigner 方法语法是

ShowDesigner(eReportType,bool)

我已经写了StringToEnumValueconvertor

更新

EnumConvertor如下

 public class StringToEnumConvertor : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return Enum.Parse(typeof(eReportingTool), (string)value);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

虽然枚举看起来像

 public enum eReportingTool
{
    StimulsoftReports = 1,
    FastReport
}

您不需要转换器将字符串转换为枚举,只需将您的枚举项作为字符串传递即可。

cal:Message.Attach="[Event Click]=[Action ShowDesigner('StimulsoftReports','false')"