Tag: enums

将数据源与某些枚举值绑定

如何使用某些选定的枚举值绑定DataSource? 我的枚举: public enum Filters : byte { Filter1 = 1, Filter2 = 2, Filter3 = 4, Filter4 = 8, Filter5 = 16 } 选定值: public Filters SelectedFilters = Filters.Filter1 | Filters.Filter4; 如何将SelectedFilters变量绑定为数据源?

友元格式枚举用于ComboBoxes,CheckedListBoxes等

需求 我想使用ComboBox从C#中的enum中选择值,或者使用CheckedListBox选择位掩码(对于带有Flags属性的enum )。 我想要一种方法将值添加到控件作为可选项,并干净地告诉用户选择了哪些。 目标1:用户友好 我还希望选择对用户来说清晰而美观。 目前我已经可以将Enum值添加到ComboBox或CheckedListBox ,但Enum.ToString()将返回标识符名称。 Pascal Case对我来说足够好,但不适合我的用户。 目标2:易于编码 我希望这很容易编码。 我的意思很简单 。 我希望这仅仅是一个定义和/或使用任何 enum值的事后想法。 我的解决方案 现在我环顾四周,看到几个不错的解决方案。 其中一些以自己的方式更好,例如, 如果您确实需要放入自己的自定义描述 ,或者更进一步, 支持多种语言 。 你也可以做假枚举 。 但我一直在寻找,并且没有一个像我所写的那样,为了我的目的而优雅和简单的结合。 见下文。

JNA无法通过java在dll文件中找到指定的过程

我试图通过java访问DLL程序,但我的java方法无法找到该程序。 dll文件已成功加载,但是名为Login I的C#代码中的过程无法调用。 下面是ADHelper.dll中的过程def: public static ADHelper.LoginResult Login(string UserName, string Password) { if (!ADHelper.IsUserValid(UserName, Password)) return ADHelper.LoginResult.LOGIN_USER_DOESNT_EXIST; DirectoryEntry user = ADHelper.GetUser(UserName); if (user == null) return ADHelper.LoginResult.LOGIN_USER_DOESNT_EXIST; int userAccountControl = Convert.ToInt32(RuntimeHelpers.GetObjectValue(user.Properties[“userAccountControl”][0])); user.Close(); return !ADHelper.IsAccountActive(userAccountControl) ? ADHelper.LoginResult.LOGIN_USER_ACCOUNT_INACTIVE : ADHelper.LoginResult.LOGIN_OK; } dll文件名是ADHelper.dll。 LoginResult是枚举类型: public enum LoginResult { LOGIN_OK, LOGIN_USER_DOESNT_EXIST, LOGIN_USER_ACCOUNT_INACTIVE, } 下面是我通常调用程序的java程序: package dllTest; import com.sun.jna.*; public […]

c#重写枚举

我知道也许之前已经提出过这个问题,但我似乎无法找到合适的解决方案(请记住,我不是C#专家,而是中级用户)… 我准备了一个基类,包括用于我的屏幕对象可能具有的动画状态的枚举(AnimationStates)(例如,士兵可能有不同的状态,而鸟可能有另一组状态..)..基类正在服务于目的为我的动画屏幕对象存储更新方法和其他东西(比如以相同的方式动画所有这些)…基类中的枚举(自然)是内部空的..我有使用枚举成员编写的方法.. 。 如果我通过“public new enum …”在我的子课程中定义enum,我可以“inheritance”它……对吗? 而且,有趣的是,我在基类中有一个字典,我试图将它从一个孩子(即士兵或鸟)传递到它的基础(animatedobject)类……但我不能…… 我觉得我做错了什么或遗失了……有什么想法吗?

C#DataContractSerializer序列化exception,在对象字段中设置了枚举

鉴于以下代码, [DataContract] public class TestClass { [DataMember] public object _TestVariable; public TestClass(object value) { _TestVariable = value; } public void Save() { using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(new FileStream(“test.tmp”, FileMode.Create))) { DataContractSerializer ser = new DataContractSerializer(typeof(TestClass)); ser.WriteObject(writer, this); } } } public enum MyEnum { One, Two, Three } 当_TestVariable设置为Enum值时,为什么无法序列化? new TestClass(1).Save(); // Works new TestClass(“asdfqwer”).Save(); […]

无法将enum绑定到comboboxwpf mvvm

A已经阅读了很多关于将枚举绑定到combobox的方法。 所以现在在.Net 4.5中它应该非常容易。 但我的代码不起作用。 真的不明白为什么。 XAML: Save xaml.cs后端 namespace SmartTrader.Windows { /// /// Interaction logic for SyncOfflineDataWindow.xaml /// public partial class SyncOfflineDataWindow : Window { public SyncOfflineDataWindow(IPosition position, ContractType type) { DataContext = new ObservablePosition(position); InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { } } } 查看型号: namespace SmartTrader.Entity { public class ObservablePosition : […]

如何将EnumConverter与CsvHelper一起使用

我正在使用CsvHelper将类序列化为csv文件 – 直到这里一切正常。 现在我正在尝试找到一种方法将类的枚举属性转换为csv中的int值,因此我可以稍后使用CSV进行批量插入。 我在CsvHelper中发现了EnumConverter类,但我无法弄清楚如何正确使用它,因为我的所有尝试都失败了。 这是我的映射类代码 public sealed class MyMapping : CsvClassMap { public MyMapping() { EnumConverter enumConverter = new EnumConverter(typeof(CalendarExceptionEntityType)); Map(m => m.ExceptionEntityType).Index(0).Name(“EXCEPTION_ENTITY_TYPE”).TypeConverter(enumConverter); Map(m => m.ExceptionEntityIdentifier).Index(1).Name(“EXCEPTION_ENTITY_IDENTIFIER”); Map(m => m.OptionType).Index(2).Name(“OPTION_TYPE”); Map(m => m.StartDatetime).Index(3).Name(“EXCEPTION_START_DATETIME”); Map(m => m.EndDatetime).Index(4).Name(“EXCEPTION_END_DATETIME”); Map(m => m.DataSourceType).Index(5).Name(“DATA_SOURCE_TYPE”); Map(m => m.Description).Index(6).Name(“DESCRIPTION”); } } 和写作部分 using (StreamWriter file = new StreamWriter(filePath, false, Encoding.UTF8)) { CsvWriter […]

将一些bool属性转换为标志枚举

我需要将具有3个bool属性的遗留类转换为标记枚举。 我知道至少有一个属性是真的。 [Flags] public enum FlagEnum { EnumValue1 = 1, EnumValue2 = 2, EnumValue3 = 4 } public class LegacyClass { public bool PropA { get; set; } public bool PropB { get; set; } public bool PropC { get; set; } } public class DtoClass { public FlagEnum FlagEnum { get; set; } public […]

为什么取消装箱枚举会产生奇怪的结果?

考虑以下:: Object box = 5; int @int = (int)box; // int = 5 int? nullableInt = box as int?; // nullableInt = 5; StringComparison @enum = (StringComparison)box; // enum = OrdinalIgnoreCase StringComparison? nullableEnum = box as StringComparison?; // nullableEnum = null. 2件事:: 为什么我可以拆箱到StringComparison ? 我想这是因为它的底层类型是Int32但我仍然发现它很奇怪。 为什么nullableEnum的值为null? 据我所知,唯一有效的拆箱是从盒装值类型到它的类型或可空类型。 如果int可以unbox到Enum ,那么为什么对于可空值可以不相同呢? 类似地,如果不是5个盒装的StringComparison.OrdinalIgnoreCase ,那么nullableInt将为null,但nullableEnum不会。

通用枚举到SelectList扩展方法

我需要在项目中的任何Enum中创建一个SelectList 。 我有下面的代码,我从特定的枚举创建一个选择列表,但我想为任何枚举创建一个扩展方法。 此示例检索每个Enum值上的DescriptionAttribute值 var list = new SelectList( Enum.GetValues(typeof(eChargeType)) .Cast() .Select(n => new { id = (int)n, label = n.ToString() }), “id”, “label”, charge.type_id); 参考这篇文章 ,我该如何处理? public static void ToSelectList(this Enum e) { // code here }