Кто-нибудь знает, как преобразовать, который я могу использовать в формах Xamarin, которые будут выполнять ИЛИ между двумя параметрами bool? - PullRequest
1 голос
/ 16 июня 2020

Вот ситуация, которая у меня есть:

   <Stack IsVisible="{Binding IsGood}" >
      <Label Text="Is Good or Okay" />
   </Stack>
   <Stack IsVisible="{Binding IsOkay}" >
      <Label Text="Is Good or Okay" />
   </Stack>

Я бы хотел как-то закодировать это так:

   <Stack IsVisible="{Binding IsGood, IsOkay, Converter={StaticResource ORConverter} }" >
      <Label Text="Is Good or Okay" />
   </Stack>

1 Ответ

0 голосов
/ 17 июня 2020

Вы не можете заставить конвертер делать это. Конвертер принимает только одно значение. Вместо этого, почему бы просто не использовать свойство в ViewModel, которое отражает это вместо этого?

public bool AorB => A || B;

private bool _a;
public bool A
{
    get => _a;
    set
    {
        _a = value;
        RaisePropertyChanged();
        RaisePropertyChanged(nameof(AorB));
    }
}

private bool _b;
public bool B
{
    get => _b;
    set
    {
        _b = value;
        RaisePropertyChanged();
        RaisePropertyChanged(nameof(AorB));
    }
}

Теперь, если вы используете MvvmCross, вы можете использовать Объединители значений , которые он предоставляет. Однако это будет работать только для описаний привязок MvvmCross, которые будут выглядеть следующим образом:

If(Or(A, B), 'true', 'false')

Это потребует от вас зависимости от MvvmCross и переключения на его привязки для таких операций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...