private object BindDictionary(IServiceProvider serviceProvider) { string uid = _uid ?? GetUid(_target); string vid = _property.Name; Binding binding = new Binding("Dictionary"); binding.Source = LanguageContext.Instance; binding.Mode = BindingMode.TwoWay; LanguageConverter converter = new LanguageConverter(uid, vid, _default); if (_parameters.Count == 0) { binding.Converter = converter; object value = binding.ProvideValue(serviceProvider); return(value); } else { MultiBinding multiBinding = new MultiBinding(); multiBinding.Mode = BindingMode.TwoWay; multiBinding.Converter = converter; multiBinding.Bindings.Add(binding); if (string.IsNullOrEmpty(uid)) { Binding uidBinding = _parameters[0] as Binding; if (uidBinding == null) { throw new ArgumentException("Uid Binding parameter must be the first, and of type Binding"); } } foreach (Binding parameter in _parameters) { multiBinding.Bindings.Add(parameter); } object value = multiBinding.ProvideValue(serviceProvider); return(value); } }
public static void Binder(string id, string propname, string defvalue, DependencyObject depo, DependencyProperty depp) { Binding binding = new Binding("Dictionary"); binding.Source = LanguageContext.Instance; LanguageConverter converter = new LanguageConverter(id, propname, defvalue); binding.Converter = converter; BindingOperations.SetBinding(depo, depp, binding); }
private object BindDictionary(IServiceProvider serviceProvider) { string uid = _uid ?? GetUid(_target); string vid = _property.Name; Binding binding = new Binding("Dictionary"); binding.Source = LanguageContext.Instance; binding.Mode = BindingMode.TwoWay; LanguageConverter converter = new LanguageConverter(uid, vid, _default); if (_parameters.Count == 0) { binding.Converter = converter; object value = binding.ProvideValue(serviceProvider); return value; } else { MultiBinding multiBinding = new MultiBinding(); multiBinding.Mode = BindingMode.TwoWay; multiBinding.Converter = converter; multiBinding.Bindings.Add(binding); if (string.IsNullOrEmpty(uid)) { Binding uidBinding = _parameters[0] as Binding; if (uidBinding == null) { throw new ArgumentException("Uid Binding parameter must be the first, and of type Binding"); } } foreach (Binding parameter in _parameters) { multiBinding.Bindings.Add(parameter); } object value = multiBinding.ProvideValue(serviceProvider); return value; } }