Xamarin 窗体 - 无法更新选取器



以下Xamarin Forms应用程序包含与动物的相同List(ChickenCow(绑定的PickerCollectionView对照。当我按下升级按钮时,动物应该升级到EagleElephant。动物被升级了,但皮克尔并没有反映出变化。CollectionView运行良好。

我在这里做错了什么?如果需要,可以在Github上找到该项目的来源。

点击查看演示

Imgur

主页.xaml

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="SampleApp.MainPage">
<StackLayout Margin="0,100,0,0">
<Button Text="Upgrade Animals" 
Margin="10"
HorizontalOptions="Center"
VerticalOptions="Start"
Command="{Binding Upgrade}" />
<Picker ItemsSource="{Binding Animals}" />
<CollectionView ItemsSource="{Binding Animals}" />
</StackLayout>
</ContentPage>

MainPageModel.cs

public class MainPageModel : INotifyPropertyChanged
{
public MainPageModel()
{
_Animals = new List<string>() { "Chicken", "Cow" };
}
private List<string> _Animals;
public List<string> Animals
{
get { return _Animals; }
set
{
_Animals = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Animals"));
}
}
public Command Upgrade
{
get
{
return new Command(_ =>
{
Animals = new List<string>() { "Eagle", "Elephant" };
});
}
}
public event PropertyChangedEventHandler PropertyChanged;
}

更新

上述代码运行XF 4.3.0.908675。我降级到4.2.0.778463,问题就消失了。这可能是最新XF版本中引入的一个新错误。

该问题已在报告的渠道上得到确认:issue 8177,我已经尝试了Xamarin.Forms的预发布版本(4.4.0.991210-pre2(,现在UWP上的绑定工作正常。

我最近一直在处理一个类似的问题,看起来确实是XF的问题。

我在应用程序中解决了这个问题,没有将列表设置为"new list((",而是创建一个单独的列表,然后将其附加到绑定列表。

在您的命令中,您应该尝试以下操作:List-newList=new List(({"鹰","象"};动物=新列表;

这可能不适用于你的例子,但这确实适用于我

最新更新