Свойство visible метки привязки в списке с помощью переключателя - PullRequest
0 голосов
/ 09 января 2019

У меня есть кнопка и список, в котором есть метка. Toggle (Switch) и List List объявляются в Xaml-файле, где Data-ячейка списка генерируется программно в CS-файле. Мне нужно скрыть / показать эту метку в списке на основе тумблера

XAML код:

<Switch  IsToggled="{Binding IsToggled, Mode=TwoWay}" Grid.Row = "0" Grid.Column = "1" HorizontalOptions = "Start" Margin = "10,8,8,0"></Switch>

<ListView x:Name="lvItemSigns" HasUnevenRows="True" SeparatorVisibility="Default" SeparatorColor="Gray">

cs код файла:

lvItemSigns.ItemTemplate = new DataTemplate (typeof (DataCell)); lvItemSigns.ItemsSource = VM.ItemSignsList;

class DataCell : ViewCell
{
   Label label;
   public DataCell()
   {
     // has grid
      var label = new Label();
            label.TextColor = Color.Black;
            label.Margin = 4;
            label.Text = "test";
            grid.Children.Add(label, 2, 1);
            label.SetBinding(Label.IsVisibleProperty, new Binding("BindingContext.IsToggled", BindingMode.TwoWay, new BooleanConverter(), null, null, "cs-file_name"));

 grid.Children.Add(stackLayout, 0, 3);

            grid.Margin = new Thickness(8,0,0,0);
            View = grid;
   }
}

В ViewModel:

    public bool _IsToggled;
    public bool IsToggled
    {
        get
        {
            return _IsToggled;
        }
        set
        {
            _IsToggled= value;
            OnPropertyChanged("_IsToggled");
        }
    }
public ItemSignsTabViewModel()
{
  ItemSignsList = new ObservableCollection<TicketItem>(daItemSign.GetItemSigns(Ticket.MobileID));
}

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

Я знаю, что делаю что-то не так. Любая помощь?

1 Ответ

0 голосов
/ 09 января 2019

Ваш DataContext для привязки коммутатора отличается от вашего DataCell DataContext.

Оба вида не нацелены на одни и те же объекты. Чтобы получить помощь, вам необходимо опубликовать код ваших моделей просмотра как для страницы, так и для DataCell.

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