我想知道是否有任何方法可以绑定转换器(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());
}
}
只有上面的伪代码
答案 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}"