private void UserControl_Loaded(object sender, RoutedEventArgs e) { if (this.DataContext == null) return; enumInfo = this.DataContext as PropertyValueConverter.PropertyInfo; EnumValueComboBox.SelectedItem = enumInfo.PropertyValue.GetType().GetEnumName(enumInfo.PropertyValue); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value == null) { return(null); } PropertyValueConverter.PropertyInfo pi = value as PropertyValueConverter.PropertyInfo; if (pi == null) { throw new InvalidOperationException("Value must be property info struct"); } object[] attribs = pi.PropertyType.GetCustomAttributes(true); foreach (object attribute in attribs) { if (attribute is MochaHint) { MochaHint hint = attribute as MochaHint; pi.PropertyValue = (hint.converter as IValueConverter).Convert(pi.PropertyValue, targetType, parameter, null); return(pi); } } return(pi); }
private void UserControl_Loaded(object sender, RoutedEventArgs e) { if (this.DataContext == null) { return; } enumInfo = this.DataContext as PropertyValueConverter.PropertyInfo; EnumValueComboBox.SelectedItem = enumInfo.PropertyValue.GetType().GetEnumName(enumInfo.PropertyValue); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value == null) { return(null); } var compack = value as MultiComponentPack; List <MultiPropertyPack> pack = new List <MultiPropertyPack>(); if (compack.merged_components.Count == 0) { return(null); } MochaInterface.Component c = compack.merged_components[0]; PropertyValueConverter pvc = new PropertyValueConverter(); var pi_ret = new ObservableCollection <PropertyValueConverter.PropertyInfo>(); pi_ret = pvc.Convert(c, null, "Component", null) as ObservableCollection <PropertyValueConverter.PropertyInfo>; foreach (var pi in pi_ret) { MultiPropertyPack ppack = new MultiPropertyPack(); ppack.merged_data = pi.PropertyValue; MultiPropertyInfoWrapper merged_pi = new MultiPropertyInfoWrapper(); merged_pi.merged_name = pi.PropertyName; merged_pi.merged_value = pi.PropertyValue; merged_pi.participating_objs = new List <object>(); foreach (var comp in compack.merged_components) { merged_pi.participating_objs.Add(comp); } PropertyValueConverter.PropertyInfo m_pi = new PropertyValueConverter.PropertyInfo(); m_pi.PropertyName = "merged_value"; m_pi.PropertyObj = merged_pi; m_pi.propertyInfo = merged_pi.GetType().GetProperty("merged_value"); m_pi.PropertyType = pi.PropertyType; m_pi.PropertyValue = merged_pi.merged_value; ppack.merged_propertyinfo = m_pi; ppack.participating_components = compack.merged_components; pack.Add(ppack); } return(pack); }
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value == null) { return(null); } PropertyValueConverter.PropertyInfo pi = value as PropertyValueConverter.PropertyInfo; if (parameter == null) { return(System.Convert.ChangeType(value, pi.PropertyType)); } //find the changed value and put it back? PropertyInfo p = pi.PropertyType.GetProperty(parameter as string); p.SetValue(pi.PropertyValue, System.Convert.ChangeType(value, p.PropertyType)); return(pi.PropertyValue); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value == null) { return(null); } PropertyValueConverter.PropertyInfo pi = value as PropertyValueConverter.PropertyInfo; if (parameter == null) { return(pi.PropertyValue); } else { PropertyInfo p = pi.PropertyType.GetProperty(parameter as string); return(p.GetValue(pi.PropertyValue)); } }
private void PS_NULLPTR_BUTTON_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show("Use Default Constructor to Create Object?", "Initialize", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { PropertyValueConverter.PropertyInfo pi = DataContext as PropertyValueConverter.PropertyInfo; try { if (pi.PropertyType == typeof(string)) { pi.PropertyValue = String.Empty; } else { pi.PropertyValue = pi.PropertyType.GetConstructor(System.Type.EmptyTypes).Invoke(null); } } catch (Exception ex) { MessageBox.Show("Could not create object\n" + ex.Message); } } }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value == null) return null; var compack = value as MultiComponentPack; List<MultiPropertyPack> pack = new List<MultiPropertyPack>(); if (compack.merged_components.Count == 0) return null; MochaInterface.Component c = compack.merged_components[0]; PropertyValueConverter pvc = new PropertyValueConverter(); var pi_ret = new ObservableCollection<PropertyValueConverter.PropertyInfo>(); pi_ret = pvc.Convert(c, null, "Component", null) as ObservableCollection<PropertyValueConverter.PropertyInfo>; foreach (var pi in pi_ret) { MultiPropertyPack ppack = new MultiPropertyPack(); ppack.merged_data = pi.PropertyValue; MultiPropertyInfoWrapper merged_pi = new MultiPropertyInfoWrapper(); merged_pi.merged_name = pi.PropertyName; merged_pi.merged_value = pi.PropertyValue; merged_pi.participating_objs = new List<object>(); foreach (var comp in compack.merged_components) merged_pi.participating_objs.Add(comp); PropertyValueConverter.PropertyInfo m_pi = new PropertyValueConverter.PropertyInfo(); m_pi.PropertyName = "merged_value"; m_pi.PropertyObj = merged_pi; m_pi.propertyInfo = merged_pi.GetType().GetProperty("merged_value"); m_pi.PropertyType = pi.PropertyType; m_pi.PropertyValue = merged_pi.merged_value; ppack.merged_propertyinfo = m_pi; ppack.participating_components = compack.merged_components; pack.Add(ppack); } return pack; }