IValueConverter删除enum(int)的基础值
本文关键字:int 删除 enum IValueConverter | 更新日期: 2023-09-27 18:07:49
我正在传递具有潜在值(int
)的Enum
作为从XAML
到IValueConverter
的参数。这个想法是使用Enum
值对列表进行迭代以检查值是否存在&返回Visibility
enum
。列表类型为int
。但是当将Enum
传递给converter
时,我不能将Enum
强制转换回int
。通过"Quick Watch"查看参数,我根本看不到潜在的值或任何值。
Enum,例如
public class Operations
{
public enum Reporting
{
ReportAccounts = 101,
ReportEngineering = 102,
ReportSoftware = 103,
ReportPR = 104,
ReportCRM = 105
}
public enum Editing
{
EditUser = 201,
EditAccess = 202,
EditView = 203
}
}
XAML,例如
Visibility={Binding Converter={StaticResource VisibilityConverter},
ConverterParameter={x:Static Operations:Reporting.ReportAccounts}}
IValueConverter
例
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
bool visibility = OperationList.Exists(list => list.Id == (int)parameter);
if (visibility == true)
{
return Visibility.Visible;
}
else
{
return Visibility.Collapsed;
}
}
我想知道是否有任何方法可以保留或检索枚举传递给IValueConverter
时的基础值。
您可能必须先将参数强制转换为枚举类型Reporting
:
int val = System.Convert.ToInt32((Reporting)parameter);
bool visibility = OperationList.Exists(list => list.Id == val);