Xamarin.forms - BoxView в настраиваемой ViewCell - PullRequest
0 голосов
/ 29 октября 2018

Я хочу установить VisibleProperty BoxView как false для последнего элемента списка, который определен в ячейке просмотра, содержащей определение стека (grid + boxview). Есть ли способ сделать его ложным, чтобы последний элемент не содержал разделительную строку boxview?

1 Ответ

0 голосов
/ 30 октября 2018

Решение:

Вы можете добавить свойство bool isShow к вашей viewModel и использовать это свойство, чтобы контролировать, является ли boxView видимым или нет.

public class MyViewModel
    {
        //use this property to control whether the boxView is visible
        public bool isShow { get; set; }
    }

И затем связывание этого свойства с boxView в вашей customCell. boxOne.SetBinding(BoxView.IsVisibleProperty, new Binding("isShow")):

public CustomCell()
    {
        //instantiate each of our views

        var grid = new Grid();
        var horizontalLayout = grid;
        grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
        grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });

        var boxOne = new BoxView { BackgroundColor = Color.Purple };
        var boxTwo = new BoxView { BackgroundColor = Color.AliceBlue };    
        grid.Children.Add(boxOne, 0, 0);        
        grid.Children.Add(boxTwo, 1, 1);

        //Binding here
        boxOne.SetBinding(BoxView.IsVisibleProperty, new Binding("isShow"));

        View = horizontalLayout;                 
     }

Наконец, когда вы создаете новый экземпляр MyViewModel, вы можете установить свойство isShow true/false, чтобы контролировать, будет ли boxView видимым в вашей ячейке.

    public MainViewCode()
    {
        myCollection = new ObservableCollection<MyViewModel>();
        ListView lstView = new ListView();  
        lstView.ItemTemplate = new DataTemplate(typeof(CustomCell));

        myCollection.Add(new MyViewModel { isShow = true });
        myCollection.Add(new MyViewModel { isShow = false });
        lstView.ItemsSource = myCollection;

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