I'm working with small wpf app and I need to load enumation into my combo box as possiblities that user might choose when he's adding new product and it looks like this:  my enumeration:  public enum ProductTypeEnum : int {     Unknown = 0,      [StringValue("Final product for sale")]     FinalProduct = 1,      [StringValue("Ingredient for product")]     Material = 2  }   Here is how it looks in my C# WPF App when I'm fetching values to display it in my combobox:  var myEnums = ProductTypeEnum.GetValues(typeof(ProductTypeEnum));   if(myEnums.Length &gt; 0) {     cmbArticleType.ItemsSource = myEnums;   //cmbArticleType.DisplayMemberPath = "SOMETHING.. WHATEVER IT AINT WORKED";  }     And this displays as you can see my real values "FinalProduct" and not the "Final product for sale"   [StringValue("Final product for sale")]   and I would like to display Final product for sale because it looks more natural in combobox (with spaces and so) =)  Thanks guys for any kind of help Cheers  EDIT AFTER MM8 HELPS:  How could I get real value out of this, cast it in integer as enums holds value of 0,1,2,3 etc :      But articleType does not provide Value so I could cast it in integer and store to db?
69100
As an example take the following code:  public enum ExampleEnum { FooBar, BarFoo }  public class ExampleClass : INotifyPropertyChanged {     private ExampleEnum example;      public ExampleEnum ExampleProperty      { get { return example; } { /* set and notify */; } } }   I want a to databind the property ExampleProperty to a ComboBox, so that it shows the options "FooBar" and "BarFoo" and works in mode TwoWay. Optimally I want my ComboBox definition to look something like this:  &lt;ComboBox ItemsSource="What goes here?" SelectedItem="{Binding Path=ExampleProperty}" /&gt;   Currently I have handlers for the ComboBox.SelectionChanged and ExampleClass.PropertyChanged events installed in my Window where I do the binding manually.  Is there a better or some kind of canonical way? Would you usually use Converters and how would you populate the ComboBox with the right values? I don't even want to get started with i18n right now.  Edit  So one question was answered: How do I populate the ComboBox with the right values.  Retrieve Enum values as a list of strings via an ObjectDataProvider from the static Enum.GetValues method:  &lt;Window.Resources&gt;     &lt;ObjectDataProvider MethodName="GetValues"         ObjectType="{x:Type sys:Enum}"         x:Key="ExampleEnumValues"&gt;         &lt;ObjectDataProvider.MethodParameters&gt;             &lt;x:Type TypeName="ExampleEnum" /&gt;         &lt;/ObjectDataProvider.MethodParameters&gt;     &lt;/ObjectDataProvider&gt; &lt;/Window.Resources&gt;   This I can use as an ItemsSource for my ComboBox:  &lt;ComboBox ItemsSource="{Binding Source={StaticResource ExampleEnumValues}}"/&gt;
63419
I'm working with ArcGIS 10.2 for Desktop and OS Windows 7.   I need to set numeric vales from Zero back to NULL, but I can't from the field calculator.  I'm working with  a vector file and I need to display NULL in one column that shows 0 (Zero) as default value.  -------- Edit------- I am adding the error messages that he received  Translation:  An error occurred during the process.  Please consult the Geoprocessing Results Window to obtain more details.  Error at bottom, translation:  The values ​​of the selected column can not be set to null because the field in the database is defined as "Not Null".
118833
If you have an enum in your application and you only have a few items, should you force the underlying type to be the smallest possible type?      enum smaller : byte     {         one,         two,         three     };
1080
How can you enumerate an enum in C#?  E.g. the following code does not compile:  public enum Suit {     Spades,     Hearts,     Clubs,     Diamonds }  public void EnumerateAllSuitsDemoMethod() {     foreach (Suit suit in Suit)     {         DoSomething(suit);     } }   And it gives the following compile-time error:     'Suit' is a 'type' but is used like a 'variable'   It fails on the Suit keyword, the second one.
103070
I know how to do it in WinForms  byte[] binaryData = Convert.FromBase64String(bgImage64); image = Image.FromStream(new MemoryStream(binaryData));   but how do i do the same thing in WPF?
71984
The following image illustrates what am looking for:    Essentially I want the numbering to occur as shown above but using the multicol and enumitem package. But when I try it by using the following code:  \documentclass{article} \usepackage{amsmath,amssymb} \usepackage{enumitem,multicol} \begin{document} \begin{enumerate} \item Evaluate each of the following if $x$ is a non-zero real number.     \begin{multicols}{2}     \begin{enumerate}[itemsep=1cm]% The item sep is my choice here.     \item $\dfrac{|x|}{x}$     \item $\dfrac{x}{|x|}$     \item $\dfrac{|-x|}{-x}$     \item $|x|-|-x|$     \end{enumerate}      \end{multicols} \end{enumerate} \end{document}   I get:    Essentially, I want the (b) to be where the (c) is. I know this has been done but I can't seem to find it.
73828
I'm creating a set of enum values, but I need each enum value to be 64 bits wide. If I recall correctly, an enum is generally the same size as an int; but I thought I read somewhere that (at least in GCC) the compiler can make the enum any width they need to be to hold their values. So, is it possible to have an enum that is 64 bits wide?
76392
I'm writting an addon with an UI. In my draw function in my UI class I've this   layout.prop(bpy.context.scene, 'activebone', text='active bone')   Wich create an enum in the UI.    And in my register class I've this:  bpy.types.Scene.activebone = bpy.props.EnumProperty(items=active_bone)   In my draw fonction I fill the active_bone list with the some data and but the enum don't refresh himself. I know that i can retype  bpy.types.Scene.activebone = bpy.props.EnumProperty(items=active_bone)   But the draw function is Read only so I can't. Is it possible to refresh my Enum item in the draw function or am I obliged to do it in an other class like a button?
5329
I'm building a function to extend the Enum.Parse concept that  Allows a default value to be parsed in case that an Enum value is not found Is case insensitive  So I wrote the following: public static T GetEnumFromString&lt;T&gt;(string value, T defaultValue) where T : Enum {     if (string.IsNullOrEmpty(value)) return defaultValue;     foreach (T item in Enum.GetValues(typeof(T)))     {         if (item.ToString().ToLower().Equals(value.Trim().ToLower())) return item;     }     return defaultValue; }  I am getting a Error Constraint cannot be special class System.Enum. Fair enough, but is there a workaround to allow a Generic Enum, or am I going to have to mimic the Parse function and pass a type as an attribute, which forces the ugly boxing requirement to your code. EDIT All suggestions below have been greatly appreciated, thanks. Have settled on (I've left the loop to maintain case insensitivity - I am using this when parsing XML) public static class EnumUtils {     public static T ParseEnum&lt;T&gt;(string value, T defaultValue) where T : struct, IConvertible     {         if (!typeof(T).IsEnum) throw new ArgumentException(&quot;T must be an enumerated type&quot;);         if (string.IsNullOrEmpty(value)) return defaultValue;          foreach (T item in Enum.GetValues(typeof(T)))         {             if (item.ToString().ToLower().Equals(value.Trim().ToLower())) return item;         }         return defaultValue;     } }  EDIT: (16th Feb 2015) Christopher Currens has posted  below, which is well worth a look, and an upvote. I will remove this edit if the solution bubbles further up the page. EDIT 2: (13th Apr 2021) As this has now been addressed, and supported, since C# 7.3, I have changed the accepted answer, though full perusal of the top answers is worth it for academic, and historical, interest :)
89022
I'm attempting to bind a DependancyProperty in one of my usercontrols to the Width property of a Column in a Grid.   I have code similar to this:  &lt;Grid x:Name="MyGridName"&gt;     &lt;Grid.ColumnDefinitions&gt;         &lt;ColumnDefinition x:Name="TitleSection" Width="100" /&gt;         &lt;ColumnDefinition Width="*" /&gt;     &lt;/Grid.ColumnDefinitions&gt;      &lt;Grid.RowDefinitions&gt;...&lt;/Grid.RowDefinitions&gt;      &lt;GridSplitter x:Name="MyGridSplitter" Grid.Row="0" Grid.Column="0" ... /&gt; &lt;/Grid&gt;   In a separate Usercontrol I have the followingDependancyProperty defined.  public static readonly DependencyProperty TitleWidthProperty = DependencyProperty.Register("TitleWidth", typeof(int), typeof(MyUserControl));  public int TitleWidth {     get { return (int)base.GetValue(TitleWidthProperty); }     set { base.SetValue(TitleWidthProperty, value); } }   I am creating instances of the Usercontrol in code, hence I have a binding statement similar to this :  MyUserControl Cntrl = new MyUserControl(/* Construction Params */); BindingOperations.SetBinding(Cntrl , MyUserControl.AnotherProperty, new Binding { ElementName = "objZoomSlider", Path = new PropertyPath("Value"), Mode = BindingMode.OneWay }); BindingOperations.SetBinding(Cntrl , MyUserControl.TitleWidthProperty, new Binding { ElementName = "TitleSection", Path = new PropertyPath("ActualWidth"), Mode = BindingMode.OneWay }); /* Other operations on Cntrl */   The first binding defined works fantastically, although that is binding to an actual UIElement (in this case a Slider), but the Binding to "TitleSection" (which is the ColumnDefinition defined in the Grid) fails. Putting a breakpoint in the code and doing a watch on "TitleSection" returns the expected object.   I am beginning to suspect that a x:Name'd ColumnDefinition can't be bound to. Can anyone suggest how I might be able to bind to the changing width of the first column in my grid?  EDIT #1 - To answer comments  The databinding 'fails' in the sense that with a breakpoint set on the setter for the TitleWidth property, and using the GridSplitter control to resize the first column, the breakpoint is never hit. Additionally, code I would expect to be fired when the DependancyProperty TitleWidth changes does not get executed.  The usercontrol is being created and added to a Stackpanel within the Grid in the Window_Loaded function. I would expect that the Grid has been rendered by the time the Usercontrols are being constructed. Certainly the x:Name'd Element TitleSection is watchable and has a value of 100 when they are being constructed / before the binding is happening.  EDIT #2 - Possibly something to do with this?  I've been having a sniff round the MSDN pages for the Grid ColumnDefinition documentation and have come across  but I can't get my head around how I can use this in a binding expression. I cannot use the associated GridLengthConverter as a converter in the binding code as it does not derive from IValueConverter.   I am leaning towards somehow binding to the ActualWidth property of one of the cells in the Grid object. It doesn't seem as clean as binding to the column definition, but at the moment I cannot get that to work.
18114
I have a method with an out parameter that tries to do a type conversion. Basically:  public void GetParameterValue(out object destination) {     object paramVal = "I want to return this. could be any type, not just string.";      destination = null; // default out param to null     destination = Convert.ChangeType(paramVal, destination.GetType()); }   The problem is that usually someone would call this like:  string output; GetParameterValue(output);   This will fail because of:  destination.GetType()   destination is null, so we can't call .GetType() on it. We also can not call:  typeof(destination)   because destination is a variable name not a type name.  So is there any way to get the type of an object that is set to null? I would think there would have to be a way to know what type a storage location is without it being assigned anything.    Just to give a bit more info, I am trying to make a utility method that will grab the output parameters of an Oracle stored procedure. The issue is that DbParameter.Value is of type object.  What would be ideal would be for the developers to do something like:  string val = GetParameterValue("parameterName");   The notable thing is that there is no casting of types. In practice, you don't know the lparam of the "equals", so I went with:  string val; GetParameterValue("parameterName", out val);   And figured within the method, I would know the destination type of the output variable. I guess that was a bad assumption. As an alternative, I also wrote the method:  public T GetParameterValue&lt;T&gt;(string paramName)   So the developers can do:  string val = GetParameterValue&lt;string&gt;("parameterName");   I find the explicit "string" declaration to be repetitive, especially since in practice, the destination if probably an object property and the oracle data type could change (think ORM):  MyObj.SomeProp = GetParameterValue&lt;MyObj.SomeProp.GetType()&gt;("parameterName");   But again, if MyObj.SomeProp is null, that .GetType() call fails. The VM has to know the type of MyObj.SomeProp, even when its null, right? or else how would it catch cast exceptions?    To partially solve my own problem, I can do:  MyObj.SomeProp = GetParameterValue&lt;typeof(MyObj).GetField("SomeProp").GetType()&gt;("parameterName");   The whole idea was to not have to explicitly use the Type in more than one place, so that if the data type changes, it only has to be changed in the destination object (MyObj.SomeProp) and in the DB. There has to be a better way...
4407
I know this rather goes against the idea of enums, but is it possible to extend enums in C#/Java?  I mean "extend" in both the sense of adding new values to an enum, but also in the OO sense of inheriting from an existing enum.    I assume it's not possible in Java, as it only got them fairly recently (Java 5?).  C# seems more forgiving of people that want to do crazy things, though, so I thought it might be possible some way.  Presumably it could be hacked up via reflection (not that you'd every actually use that method)?  I'm not necessarily interested in implementing any given method, it just provoked my curiosity when it occurred to me :-)
220
I know that PHP doesn't yet have native Enumerations. But I have become accustomed to them from the Java world. I would love to use enums as a way to give predefined values which IDEs' auto-completion features could understand. Constants do the trick, but there's the namespace collision problem and (or actually because) they're global. Arrays don't have the namespace problem, but they're too vague, they can be overwritten at runtime and IDEs rarely know how to autofill their keys without additional static analysis annotations or attributes. Are there any solutions/workarounds you commonly use? Does anyone recall whether the PHP guys have had any thoughts or decisions around enumerations?
65369
I have an enum construct like this:  public enum EnumDisplayStatus {     None    = 1,     Visible = 2,     Hidden  = 3,     MarkedForDeletion = 4 }   In my database, the enumerations are referenced by value. My question is, how can I turn the number representation of the enum back to the string name.   For example, given 2 the result should be Visible.
3048
Say I have an enum which is just public enum Blah {     A, B, C, D }  and I would like to find the enum value of a string, for example &quot;A&quot; which would be Blah.A. How would it be possible to do this? Is the  the method I need? If so, how would I use this?
7345
I have a configuration file where a developer can specify a text color by passing in a string:   &lt;text value="Hello, World" color="Red"/&gt;   Rather than have a gigantic switch statement look for all of the possible colors, it'd be nice to just use the properties in the class System.Drawing.Brushes instead so internally I can say something like:   Brush color = Brushes.Black;   // Default   // later on...  this.color = (Brush)Enum.Parse(typeof(Brush), prasedValue("color"));   Except that the values in Brush/Brushes aren't enums.  So Enum.Parse gives me no joy.  Suggestions?
21008
I was wondering in C++ if I have an enum can I access the value at the second index?  For example I have  enum Test{hi, bye};   if I want 'hi', can I do something like Test[0], thanks.