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')"
当使用 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')"