4
我将具有基础值(int
)的Enum
作为参数从XAML
传递到IValueConverter
。我们的想法是使用Enum
值对列表进行迭代以检查值是否存在&返回Visibility
enum
。该列表的类型为int
。但是,在将Enum
传递给converter
时,我无法将Enum
转换回int
。 通过'快速观察'查看参数,我根本看不到底层值或任何值。IValueConverter去除枚举的基础值(int)
例如,
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
检索枚举的潜在价值的任何方式。
你说你是窥视到*值*,但你通过枚举值作为'ConverterParameter'。您是否尝试了一下'参数'而不是? – 2013-04-07 16:40:31
请正确格式化您的源代码。这种格式化已经完成 - 不仅在您的代码示例中,而且在您的消息文本中 - 由一位SO用户完成,但您只是取消了这些更改,从而使您的问题难以阅读。 – 2013-04-07 16:52:01
有没有办法回想起这个帖子?我没有真正格式化这个问题?这是我的第一篇文章。 – SAm 2013-04-07 16:54:02