【问题标题】:Silverlight Binding converterSilverlight 绑定转换器
【发布时间】:2011-07-30 13:46:26
【问题描述】:

我正在尝试将一个字段绑定到我的转换器...但似乎不可能...

这就是我想要做的。

  Source="{Binding LeaveApproved,Converter={StaticResource CommentTypeIconConverter},ConverterParameter={Binding TypeOfWorkId}}"

当 TypeOfWorkId 为 5 且 LeaveApproved 为空时,我想要一个不同的图标。所有其他类型的工作都应该有一个空字段,所以那里没有图标。这就是为什么我需要在我的转换器中使用 typeOfWorkId。

有人知道怎么做吗?

格子

【问题讨论】:

标签: silverlight binding parameters converter


【解决方案1】:

在 ConvertParameter 中无法进行绑定(尽管您可以使用 StaticResource)。 要解决您的问题,您必须创建另一个属性,例如 LeaveApprovedTypeOfWorkId,它将考虑您的逻辑。

public YourType LeaveApprovedTypeOfWorkId {
  get{
    if(TypeOfWorkId==5 && LeaveApproved == null){
      return //something
    }
    else{
      return //something
    }
  }
}

改为绑定到此属性。 如果 LeaveApproved 或 TypeOfWorkId 是 set

,请不要忘记 NotifyPoppertyChange

【讨论】:

    【解决方案2】:

    不要设置对象的属性,您将在您的转换中拥有您的对象。就这样:

    Content="{Binding Converter={StaticResource xxxxxxConverterName }}"
    

    【讨论】:

      【解决方案3】:
      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();
          }
      }
      

      这对你有用吗?

      最好还是使用多重绑定来完成你想做的事情..

      http://www.scottlogic.co.uk/blog/colin/2009/06/silverlight-multibindings-how-to-attached-mutiple-bindings-to-a-single-property/

      【讨论】:

      • 我想我必须进行多重绑定...以前从未做过。我试试看!
      • 如果你有 devexpress,那么你可以使用他们的多重绑定类,如果没有,那么你可以再看看:scottlogic.co.uk/blog/colin/2010/05/… 顺便说一句,你可以在没有多重绑定的情况下做你想做的事情。 .
      • 我不想使用多重绑定...有没有办法将我的对象发送到转换器?
      • 创建一个包含您感兴趣的两个对象的类并绑定到该类的实例。例如:具有 LeaveAproved 和 TypeOfWorkId 属性的类 x,然后在您的视图模型中公开 x 类的属性
      猜你喜欢
      • 2012-03-27
      • 2012-01-14
      • 2010-10-20
      • 2012-03-10
      • 2011-01-14
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多