绑定到ValueConverter的特定路径返回对象

时间:2017-02-03 15:44:58

标签: c# wpf

我想知道是否有任何方法可以绑定转换器(IValueConverter)返回的对象的特定属性

例如

id employee_name     dept  Dept_name
1    Abhijit         10    Physics
1    Abhijit         10    Physics

Intented usage:从UI传递服务。绑定到MyObject的“MyUri”属性

public class MyObject
{

      public Uri MyUri{get;set;}
     //.................

}

public class SomeConverter:IValueConverter
{
       public object Convert(object value, Type targetType, object parameter,            
             System.Globalization.CultureInfo culture)
          {
                IService service = (IService )value;
                return new MyObject(service, parameter.ToString());
           }
 }

只有上面的伪代码

1 个答案:

答案 0 :(得分:1)

嗯,不。您绑定到一个属性 - 您确实可以使用多转换器绑定到多个属性但这是另一个故事 - 由Binding的Path属性指定并且您返回一个已转换转换器的值。

使用相同的绑定无法绑定,转换然后再绑定到其他内容。

转换器可能不是你想要的。您最好直接通过视图模型的属性公开转换后的值,然后绑定到此属性的子属性:

查看型号:

//existing property:
public IService MyService { get { return _service; } }

//new property. Bind to this wrapper property which basically handles the conversion logic:
public MyObject MyObject { get { return new MyObject(_service); }}

查看:

BackgroundGraphic="{Binding MyService.MyUri}"