Xamarin Forms - Настройки привязок в виде цветов в зависимости от наличия в списке - PullRequest
0 голосов
/ 10 мая 2018

Сценарий выглядит следующим образом:

public enum DayOfWeek
{
    All = 0,
    Monday = 1,
    Tuesday = 2, 
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6,
    Sunday = 7
}

public class Class2{
    public List<DayOfWeek> DaysOfWeek
}

public class Class1{
    public List<Class2> aList{get; set;}
}

У меня есть Class1 в моей ViewModel, которая связана с View через BindingContext.

Я хочу показать в списке Список, который яв настоящее время.

В ListView я определяю ViewCell (внутри), например:

<Grid Grid.Row="1" Grid.Column="1" HorizontalOptions="Center" VerticalOptions="Center" RowSpacing="1" ColumnSpacing="2">
     <Grid.ColumnDefinitions>
          <ColumnDefinition Width="17"/>
          <ColumnDefinition Width="17"/>
          <ColumnDefinition Width="17"/>
          <ColumnDefinition Width="17"/> 
          <ColumnDefinition Width="17"/>                               
          <ColumnDefinition Width="17"/>
          <ColumnDefinition Width="17"/>
     </Grid.ColumnDefinitions>
     <Grid.RowDefinitions>
          <RowDefinition Height="17"/>
          <RowDefinition Height="17"/>
     </Grid.RowDefinitions>

     <Label Grid.Row="0" Grid.Column="0" Text="M" VerticalOptions="Center" HorizontalOptions="Center"/> 
     <Label Grid.Row="0" Grid.Column="1" Text="T" VerticalOptions="Center" HorizontalOptions="Center"/>
     <Label Grid.Row="0" Grid.Column="2" Text="W" VerticalOptions="Center" HorizontalOptions="Center"/>
     <Label Grid.Row="0" Grid.Column="3" Text="T" VerticalOptions="Center" HorizontalOptions="Center"/>
     <Label Grid.Row="0" Grid.Column="4" Text="F" VerticalOptions="Center" HorizontalOptions="Center"/>
     <Label Grid.Row="0" Grid.Column="5" Text="S" VerticalOptions="Center" HorizontalOptions="Center"/>
     <Label Grid.Row="0" Grid.Column="6" Text="S" VerticalOptions="Center" HorizontalOptions="Center"/>

     <BoxView Grid.Row="1" Grid.Column="0" VerticalOptions="Center" HorizontalOptions="Center"/> 
     <BoxView Grid.Row="1" Grid.Column="1" VerticalOptions="Center" HorizontalOptions="Center"/>
     <BoxView Grid.Row="1" Grid.Column="2" VerticalOptions="Center" HorizontalOptions="Center"/>
     <BoxView Grid.Row="1" Grid.Column="3" VerticalOptions="Center" HorizontalOptions="Center"/>
     <BoxView Grid.Row="1" Grid.Column="4" VerticalOptions="Center" HorizontalOptions="Center"/>
     <BoxView Grid.Row="1" Grid.Column="5" VerticalOptions="Center" HorizontalOptions="Center"/>
     <BoxView Grid.Row="1" Grid.Column="6" VerticalOptions="Center" HorizontalOptions="Center"/>
</Grid>

В основном я планирую отображать DaysOfWeek в полях и окрашивать их в красный или зеленый цвет в зависимости отдень находится в DaysOfWeek.

Я думаю, что для установки цвета мне нужно использовать конвертер, который проверяет дни, содержащиеся в списке (DaysOfWeek), и возвращает зеленый, если так, красный в противном случае.Это правильно?

Как мне установить привязки?Как указать и на элемент списка внутри списка?

В настоящее время у меня достаточно проблем, чтобы связать другие свойства класса 2 или класса 1 с помощью MVVM.

Есть идеи?

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