/// <summary> /// Update properties used to display content in the combo box with new values. /// </summary> /// <parameters> /// <param name="enumType">The type of the enum bound to the <see cref="EnumBinding"/> dependency property.</param> /// </parameters> /// <remarks> /// This will display a new set of localized strings in the drop-down part of the combo box, and select one of them if appropriate. /// </remarks> private void UpdateContent(Type enumType) { EnumNameCollection.Clear(); if (enumType != null && enumType.IsEnum) { IValueConverter Converter = NameConverter; object ConverterParameter = NameConverterParameter; ConversionCulture = NameConverterCulture; if (ConversionCulture == null) { ConversionCulture = CultureInfo.CurrentCulture; } string[] EnumNames = enumType.GetEnumNames(); foreach (string EnumName in EnumNames) { string ConvertedText = (Converter != null) ? Converter.Convert(EnumName, typeof(string), ConverterParameter, ConversionCulture) as string : EnumName; EnumNameCollection.Add(ConvertedText); } } ItemsSource = EnumNameCollection; if (SelectedIndex >= EnumNameCollection.Count) { SelectedIndex = -1; } }
void WriteFlags<T>(T flags, EnumNameCollection<T> flagNames) where T : struct { long val = Convert.ToInt64(flags); long tested = 0; foreach (var pair in flagNames) { tested |= pair.Key; if ((val & pair.Key) != 0 && pair.Value != null) { output.Write(pair.Value); output.Write(' '); } } if ((val & ~tested) != 0) output.Write("flag({0:x4}) ", val & ~tested); }
void WriteEnum<T>(T enumValue, EnumNameCollection<T> enumNames) where T : struct { long val = Convert.ToInt64(enumValue); foreach (var pair in enumNames) { if (pair.Key == val) { if (pair.Value != null) { output.Write(pair.Value); output.Write(' '); } return; } } if (val != 0) { output.Write("flag({0:x4})", val); output.Write(' '); } }
private void WriteFlags <T>(T flags, EnumNameCollection <T> flagNames) where T : struct { long val = Convert.ToInt64(flags); long tested = 0; foreach (var pair in flagNames) { tested |= pair.Key; if ((val & pair.Key) != 0 && pair.Value != null) { languageWriter.WriteKeyword(pair.Value); languageWriter.WriteSpace(); } } if ((val & ~tested) != 0) { languageWriter.WriteKeyword(string.Format("flag({0:x4}) ", val & ~tested)); } }
private void WriteFlags <T>(T flags, EnumNameCollection <T> flagNames) where T : struct { var val = Convert.ToInt64(flags); long tested = 0; foreach (var pair in flagNames) { tested |= pair.Key; if ((val & pair.Key) == 0 || pair.Value == null) { continue; } _o.Write(pair.Value); _o.Write(' '); } if ((val & ~tested) != 0) { _o.Write("flag({0:x4}) ", val & ~tested); } }
private void WriteEnum <T>(T enumValue, EnumNameCollection <T> enumNames) where T : struct { var val = Convert.ToInt64(enumValue); foreach (var pair in enumNames.Where(pair => pair.Key == val)) { if (pair.Value == null) { return; } _o.Write(pair.Value); _o.Write(' '); return; } if (val == 0) { return; } _o.Write("flag({0:x4})", val); _o.Write(' '); }
private void WriteEnum <T>(T enumValue, EnumNameCollection <T> enumNames) where T : struct { long val = Convert.ToInt64(enumValue); foreach (var pair in enumNames) { if (pair.Key == val) { if (pair.Value != null) { languageWriter.WriteKeyword(pair.Value); languageWriter.WriteSpace(); } return; } } if (val != 0) { languageWriter.WriteKeyword(string.Format("flag({0:x4})", val)); languageWriter.WriteSpace(); } }
/// <summary> /// Resets properties used to display content in the combo box. /// </summary> private void ResetContent() { EnumNameCollection.Clear(); SelectedIndex = -1; }