|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Markup;
using System.Windows.Data;
using System.Windows;
namespace BindableConverterParameter
{
class MyBindedParameterMultiBinding : MarkupExtension
{
public Binding Binding1 { get; set; }
public Binding Binding2 { get; set; }
public Binding ConverterParameter { get; set; }
public IMultiValueConverter Converter { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
try
{
IProvideValueTarget pvt = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;
DependencyObject TargetObject = pvt.TargetObject as DependencyObject;
BindingOperations.SetBinding(TargetObject, CustomBindingUtil.Binding1Property, Binding1);
BindingOperations.SetBinding(TargetObject, CustomBindingUtil.Binding2Property, Binding2);
BindingOperations.SetBinding(TargetObject, CustomBindingUtil.ConverterParameterProperty, ConverterParameter);
TargetObject.SetValue(CustomBindingUtil.MultiConverterProperty, this.Converter);
Binding b = new Binding();
b.Source = TargetObject;
b.Path = new PropertyPath(CustomBindingUtil.MBResultProperty);
return b.ProvideValue(serviceProvider);
}
catch (Exception)
{
throw;
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.