Решение:
Вы можете добавить свойство 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;
}