Silverlight Binding конвертер - PullRequest
       14

Silverlight Binding конвертер

0 голосов
/ 06 апреля 2011

Я пытаюсь привязать поле к моей обложке ... Но кажется, что это невозможно ...

Это то, что я пытаюсь сделать.

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

Мне нужен другой значок, когда TypeOfWorkId равен 5, а LeaveApproved равно нулю. Все остальные типы работ должны иметь пустое поле, поэтому значок отсутствует. Вот почему мне нужен typeOfWorkId в моей обложке.

Кто-нибудь знает, как это сделать?

Grtz

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Привязка невозможна в ConvertParameter (хотя вы можете использовать StaticResource).Чтобы решить ваш случай, вам нужно будет создать другое свойство, скажем LeaveApprovedTypeOfWorkId, которое будет учитывать вашу логику.

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

Вместо этого свяжите это свойство.Не забудьте NotifyPoppertyChange в случае LeaveApproved или TypeOfWorkId равен установлен

1 голос
/ 17 августа 2011

Не устанавливайте свойство объекта, и вы будете иметь свой объект в конверте. Просто так:

Content="{Binding Converter={StaticResource xxxxxxConverterName }}"
0 голосов
/ 06 апреля 2011
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/

...