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