Изменить текст метки форм Xamarin на основе значения bool - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь получить метку, которая может иметь два разных текстовых значения.Я покажу один из двух, основанных на bool.Я знаю, что могу создать привязку к моей модели представления, которая может иметь свойство (например, LabelText), которое можно изменить.Однако мне нужно было бы установить текст внутри модели представления в этом случае, и это выглядит немного грязно.

Я ищу какой-то конвертер (IValueConverter), который связывает bool со свойством text и имеет две строкиПараметры.Затем конвертер выбирает правильную строку для текста метки.Однако, насколько мне известно, невозможно иметь более одного параметра в преобразователе?

Есть идеи, как решить эту проблему чисто?Может быть, как-то путем подкласса Label, но как?

1 Ответ

0 голосов
/ 14 ноября 2018

Я бы предпочел триггер в этом случае, чем IValueConverter. Потому что с триггером вы можете иметь свой текст внутри самого представления. Так что, если вы хотите изменить; вам не нужно искать логику за пределами этого ярлыка.

<Label Text="Hello World!">
            <Label.Triggers>
                    <DataTrigger TargetType="Label" Binding="{Binding IsActive}" Value="false">
                        <Setter Property="Text"  Value="Not Active" />
                    </DataTrigger>
                    <DataTrigger TargetType="Label" Binding="{Binding IsActive}" Value="true">
                        <Setter Property="Text"  Value="Active" />
                    </DataTrigger>
                </Label.Triggers>

</Label>

Итак, здесь вы связываете Trigger с вашим логическим свойством в вашей виртуальной машине. Если его значение True или False при каждом изменении, оно активирует этот триггер.

Просто чтобы вы знали; Вы можете даже изменить другие свойства! Допустим, если вы хотите изменить цвет? Так что это может быть даже более лучшим решением для вас, чем использование ValueConverter в этом случае.

Надеюсь, это поможет. Дайте мне знать, если вам нужна дополнительная помощь.

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