В настоящее время я использую Syncfusion Sf Datagrid. Я хочу отображать датагриды на основе количества. Например, у меня есть кнопка A и кнопка B, если пользователь нажмет на A, отобразится 1 сетка данных. Если пользователь нажмет на B, отобразится 2 сетки данных. К вашему сведению, сетка данных будет отображаться на той же странице.
Мой код теперь отображает всю сетку данных. Я хотел бы отображать сетку данных только на основе условия (в данном случае это A или B). Я не уверен, как этого добиться, потому что сетка данных находится в xaml, как мне убедиться, что правильное количество сетки данных, которое я хочу отобразить? Скажем, если я хочу иметь больше категорий с разными элементами, как мне отобразить правильное количество datagrid в соответствии с элементами внутри категории?
MainPage.xaml
<ContentPage.Content>
<StackLayout>
<Button Text="A"/>
<Button Text="B"/>
<sfgrid:SfDataGrid ItemsSource="{Binding fruitA}"/>
<sfgrid:SfDataGrid ItemsSource="{Binding vegeB1}"/>
<sfgrid:SfDataGrid ItemsSource="{Binding vegeB2}"/>
</StackLayout>
</ContentPage.Content>
MainPage.cs
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
this.BindingContext = new ViewModel();
}
}
ViewModel
public class ViewModel
{
public ObservableCollection<Test> fruitA { get; set; }
public ObservableCollection<Test> vegeB1 { get; set; }
public ObservableCollection<Test> vegeB2 { get; set; }
public ViewModel()
{
fruitA = new ObservableCollection<ChildPart>();
fruitA.Add(new Test() { Title = "Orange", Value = "1.20" });
fruitA.Add(new Test() { Title = "Banana", Value = "1.40" });
fruitA.Add(new Test() { Title = "Apple", Value = "1.30" });
vegeB1 = new ObservableCollection<ChildPart>();
vegeB1.Add(new Test() { Title = "Spinach", Value = "1.20" });
vegeB1.Add(new Test() { Title = "Cabbage", Value = "1.40" });
vegeB2 = new ObservableCollection<ChildPart>();
vegeB2.Add(new Test() { Title = "Lettuce", Value = "1.20" });
vegeB2.Add(new Test() { Title = "Broccoli", Value = "1.40" });
vegeB2.Add(new Test() { Title = "Celery", Value = "1.30" });
}
}
Тест
public class Test
{
public string Title { get; set; }
public string Value { get; set; }
}