C# Xamarin表单-更改不是';检测不到

C# Xamarin表单-更改不是';检测不到,c#,xaml,xamarin,xamarin.forms,mvvm,C#,Xaml,Xamarin,Xamarin.forms,Mvvm,我一直在尝试创建一个自定义搜索字段,该字段在键入时可以动态地将对象添加到列表中。 但由于某些原因,它仅在我热重新加载时显示带有项目的列表 创建HerdPageViewModel public类CreateHerdPageViewModel:ViewModelBase { 私人服务; 私有字符串输入; 公共字符串SearchInput{get=>SearchInput; 集合{ SetProperty(参考搜索输入,值); RaisePropertyChanged(畜群名称); } } 私人名单

我一直在尝试创建一个自定义搜索字段,该字段在键入时可以动态地将对象添加到列表中。 但由于某些原因,它仅在我热重新加载时显示带有项目的列表

创建HerdPageViewModel

public类CreateHerdPageViewModel:ViewModelBase
{
私人服务;
私有字符串输入;
公共字符串SearchInput{get=>SearchInput;
集合{
SetProperty(参考搜索输入,值);
RaisePropertyChanged(畜群名称);
} 
}
私人名单畜群结果;
公共列表牧群搜索结果
{
get=>牧群搜索结果;
设置{
SetProperty(参考牧群搜索结果,值);
}
}
所有畜群的私有列表;
公共列表allstrosts{get=>allstrosts;set=>SetProperty(ref-allstrosts,value);}
公共DelegateCommand SearchChroAddressCommand{get;set;}
公共CreateHerdPageViewModel(INavigationService导航服务、IHerdService服务)
:base(导航服务)
{
this.牧群服务=牧群服务;
SearchChroAddressCommand=新的DelegateCommand(SearchChroAddress);
}
私有void searchroAddress()
{
牧群匹配=新牧群();
for(int i=0;i
CreateHerdPage.Xaml

xmlns:yummy=“clr命名空间:Xamarin.Forms.PancakeView;assembly=Xamarin.Forms.PancakeView”
xmlns:b=“clr命名空间:Prism.Behaviors;assembly=Prism.Forms”
xmlns:CustomRenderer=“clr命名空间:ChrApp.CustomRenderer”>
正如你所看到的,我尝试了不同的方法让它识别变化,但没有运气

有人能告诉我我错过了什么吗


提前感谢

所以问题是我使用了一个普通的
列表
,而不是
可观察的集合
。因此,切换到此解决了问题。

使用ObservableCollection,而不是列表解决了此问题吗?请更新。
   public class CreateHerdPageViewModel : ViewModelBase
    {
        private IHerdService herdService;
        private string searchInput;
        public string SearchInput { get => searchInput; 
            set { 
                SetProperty(ref searchInput, value);
                RaisePropertyChanged(nameof(HerdSearchResults));
            } 
        }

        private List<Herd> herdSearchResults;
        public List<Herd> HerdSearchResults
        {
            get => herdSearchResults;

            set {
                SetProperty(ref herdSearchResults, value);
                }
        }

        private List<Herd> allHerds;
        public List<Herd> AllHerds { get => allHerds; set => SetProperty(ref allHerds, value); }

        public DelegateCommand SearchChrOrAddressCommand { get; set; }
        public CreateHerdPageViewModel(INavigationService navigationService, IHerdService herdService)
            : base(navigationService)
        {
            this.herdService = herdService;
            SearchChrOrAddressCommand = new DelegateCommand(SearchChrOrAddress);
        }
        private void SearchChrOrAddress()
        {
            Herd herdMatch = new Herd();
            for (int i = 0; i < AllHerds.Count; i++)
            {
                herdMatch = AllHerds[i];
            }
            if (herdMatch.ChrAddress.Area.Contains(SearchInput))
            {
                if (HerdSearchResults.Contains(herdMatch) == false)
                {
                    HerdSearchResults.Add(herdMatch);
                    RaisePropertyChanged(nameof(HerdSearchResults));
                } 
            }
            
        }
        public async override void OnNavigatedTo(INavigationParameters parameters)
        {
            base.OnNavigatedTo(parameters);
            AllHerds = await herdService.GetHerds();
            HerdSearchResults = new List<Herd>();
        }


    }
}
xmlns:yummy="clr-namespace:Xamarin.Forms.PancakeView;assembly=Xamarin.Forms.PancakeView"
xmlns:b="clr-namespace:Prism.Behaviors;assembly=Prism.Forms"
xmlns:CustomRenderer="clr-namespace:ChrApp.CustomRenderer">

                   <yummy:PancakeView
                        Grid.Column="0"
                        Grid.Row="0"
                        Grid.ColumnSpan="3"
                        CornerRadius="10">
                    <CustomRenderer:NoUnderlineEntry
                            x:Name="SearchField"
                            Style="{StaticResource UpdateEntry}"
                            Margin="0"
                            TextChanged="RemovceSearchIcon"
                            Text="{Binding SearchInput}">
                        <CustomRenderer:NoUnderlineEntry.Behaviors>
                            <b:EventToCommandBehavior
                                EventName="TextChanged"
                                Command="{Binding SearchChrOrAddressCommand}"/>
                        </CustomRenderer:NoUnderlineEntry.Behaviors>
                    </CustomRenderer:NoUnderlineEntry>
                </yummy:PancakeView>