我正试图将一个字段绑定到我的转换器......但似乎不可能......
这就是我要做的事。
Source="{Binding LeaveApproved,Converter={StaticResource CommentTypeIconConverter},ConverterParameter={Binding TypeOfWorkId}}"
当TypeOfWorkId为5且LeaveApproved为null时,我想要一个不同的图标。所有其他类型的工作应该有一个空字段,所以没有图标。这就是我需要在我的变形器中使用typeOfWorkId的原因。
有人知道怎么做吗?
Grtz
答案 0 :(得分:2)
在ConvertParameter中无法绑定(尽管您可以使用StaticResource)。 要解决您的情况,您必须创建另一个属性,例如LeaveApprovedTypeOfWorkId,它将考虑您的逻辑。
public YourType LeaveApprovedTypeOfWorkId {
get{
if(TypeOfWorkId==5 && LeaveApproved == null){
return //something
}
else{
return //something
}
}
}
改为绑定此属性。 如果 LeaveApproved 或 TypeOfWorkId 设置
,请不要忘记 NotifyPoppertyChange答案 1 :(得分:1)
不要设置对象的属性,您将在转换中拥有对象。就像那样:
Content="{Binding Converter={StaticResource xxxxxxConverterName }}"
答案 2 :(得分:0)
public class CommentTypeIconConverter:IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int typeOfWorkId;
if (value == null && parameter != null && int.TryParse(parameter.ToString(), out typeOfWorkId) && typeOfWorkId == 5)
return new BitmapImage(...);
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
这对你有用吗?
最好使用多重绑定来做你想做的事情。