我需要一些建议,以帮助解决任何问题。我必须创建一个具有ContentPages动态计数的视图。我创建了两个ViewModel,一个具有逻辑和秒表,另一个用于控制动态页面。看起来像这样:
CircleViewModel:
public class CircleViewModel: ViewModelBase {
public ObservableCollection<Circle> Circles { get; set; }
private string _timeText;
public string TimeText {
get => _timeText;
set {
_timeText = value;
OnPropertyChanged();
}
// Some ICommands and methods
public async Task StartStopWatch() { ... }
}
MultiPageViewModel:
public class MultiPageViewModel : ViewModelBase {
public ObservableCollection<CircleViewModel> Pages { get; set; }
private CircleViewModel _currentPage;
public CircleViewModel CurrentPage {
get => _currentPage;
set {
_currentPage = value;
OnPropertyChanged();
}
// Some ICommands and methods
}
MultiPageView.xaml:
<ContentPage ...
BindingContext="{Binding MultiPageViewModel, Source={StaticResource Locator}}">
<Grid>
<ListView ItemsSource="{Binding CurrentPage.Circles}"/>
<Label Text="{Binding CurrentPage.Title}"/>
<Button Text="{Binding CurrentPage.TimeText}" Command="{Binding CurrentPage.StartWatchCommand}"/>
<userControls:VerticalTabView ItemsSource="{Binding MultiPageViewModel.Pages, Source={StaticResoruce Locator}}"
MoreButtonCommand="{Binding MultiPageViewModel.MoreButtonCommand, Source={StaticResource Locator}}"/>
</Grid>
</ContentPage>
VerticalTabView是用于更改当前页面的用户控件。
我不喜欢这种可用性,因此我将ContentPage更改为CarouselPage。使用UWP可以正常工作,而使用Android则滚动开始变得混乱,在Visual Studio的输出中出现“ 应用程序可能在其主线程上做过多的工作。”并因OutOfMemory异常而崩溃。 CarouselPage当前不适用于iOS。
我该如何改善?我很感谢任何建议。谢谢。