Я пытаюсь изучить Xamarin.Form на Android и платформах WPF. Я использую очень простую наблюдаемую коллекцию в качестве привязки данных в файле ViewModel. Привязка данных работает правильно на платформе Android, но на платформе WPF ничего не отображается! Другие элементы управления, такие как кнопки и метки, работают правильно в платформе WPF. В режиме отладки кнопка, которая заполняет коллекцию, также работает, когда я запускаю WPF как проект по умолчанию.
Коды файлов ViewModel
public sealed class MainPageViewModel : INotifyPropertyChanged
{
public ObservableCollection<string> Test { get; set; } = new ObservableCollection<string>();
public Command LoadCommand { get; }
public MainPageViewModel()
{
LoadCommand = new Command(() =>
{
for (int i = 0; i < 10; i++)
{
Test.Add(i.ToString());
}
});
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Коды файлов MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage.BindingContext>
<local:MainPageViewModel />
</ContentPage.BindingContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalOptions="Center"
Text="Select one of the items below."
VerticalOptions="CenterAndExpand" />
<Button
Grid.Row="1"
Grid.Column="1"
Command="{Binding LoadCommand}"
Text="test" />
<CollectionView
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
ItemsSource="{Binding Test}">
<CollectionView.ItemTemplate>
<DataTemplate>
<StackLayout>
<Frame>
<Label Text="{Binding .}" />
</Frame>
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</Grid>
Есть предложения?