Привязка значения переключателя к элементу списка по индексу - PullRequest
0 голосов
/ 18 мая 2018

У меня есть несколько переключателей (дней недели), которые я хочу привязать к определенному индексу списка .. как суббота => мой список [0], воскресенье мой список [1] ​​прямо сейчас, когда я пытаюсь получить значение, которое этовернуть ноль!

Моя ViewModel

  private List<bool> _days;

  public List<bool> Days
    {
        get => _days;
        set
        {
            if (Equals(value, _days)) return;
            _days = value;
            OnPropertyChanged();
        }
    }

Моя точка зрения

<Switch IsToggled="{Binding Days[0]}" Grid.Row="4" Grid.Column="0"
                Scale="1.5" x:Name="SaturdaySwitch"></Switch>
 <Switch IsToggled="{Binding Days[1]}" Grid.Row="5" Grid.Column="0"
                Scale="1.5" x:Name="SundaySwitch"></Switch>

1 Ответ

0 голосов
/ 18 мая 2018

Чтобы показать вам, как в коде я создал этот быстрый и грязный пример для вас, который можно найти здесь: https://github.com/jfversluis/FixedArraySample

В ViewModel (здесь он называется PageModel), я определяю список, которыйинициализируется 7 значениями.

public List<bool> Days { get; set; } = new List<bool>
{
    false,
    false,
    true,
    false,
    false,
    false,
    true
};

Затем на странице я связываю это так:

<StackLayout Orientation="Horizontal">
    <Label Text="Monday" />
    <Switch IsToggled="{Binding Days[0]}" />
</StackLayout>

Это приводит к приведенному ниже экрану.Databound Switch controls

Чтобы вернуть значения в список при переключении переключателей, вы, вероятно, захотите добавить двустороннюю привязку данных, например: <Switch IsToggled="{Binding Days[0], Mode=TwoWay}" />.

Теперь значения будут обновлены в списке Days соответственно, и вы можете получить к ним доступ в своей ViewModel.

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