Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 无法获取异步方法中返回的IEnumerable的计数_Wpf_Wcf_Mvvm - Fatal编程技术网

Wpf 无法获取异步方法中返回的IEnumerable的计数

Wpf 无法获取异步方法中返回的IEnumerable的计数,wpf,wcf,mvvm,Wpf,Wcf,Mvvm,我对这一点完全陌生,但正在努力学习。我相信有一个简单的答案,但我不知道足够的谷歌正确的问题。我相信这一定是一个常见的问题 在使用WCF服务的MVVM模式上使用Visual Studio 2010、WPF、.net 4.0的过程中,我有一个非常有效的方法: private void RefreshEncountertimes() { // consume the WCF service. this.dataservice.GetEncounterDetai

我对这一点完全陌生,但正在努力学习。我相信有一个简单的答案,但我不知道足够的谷歌正确的问题。我相信这一定是一个常见的问题

在使用WCF服务的MVVM模式上使用Visual Studio 2010、WPF、.net 4.0的过程中,我有一个非常有效的方法:

 private void RefreshEncountertimes()
    {
        // consume the WCF service.
        this.dataservice.GetEncounterDetailsCompleted += (s, e) =>
            {
                this.Encounterdetails = e.Result;
             };
           // call the WCF service
        this.dataservice.GetEncounterDetailsAsync(Calendardate);
    } 
其中遇到的详细信息是:

    private IEnumerable<EncounterDetail> encounterdetails;
    public IEnumerable<EncounterDetail> Encounterdetails
    {
        get
        {
            return this.encounterdetails;
        }
        set
        {
            this.encounterdetails = value;
            this.OnPropertyChanged("Encounterdetails");
        }
    }
它崩溃于: 无法计算表达式,因为当前线程处于堆栈溢出状态

那么,如何从异步过程中获取返回的IEnumerable的计数呢


如果有任何帮助,我们将不胜感激。

是什么触发了
刷新偶遇
?您甚至。。。从IEnumerable获取计数?@MikkoViitala:Linq扩展方法,天哪。哦,你需要捕捉异常,调用ToString,然后用你的问题添加细节。如果没有调用堆栈,这里就没有足够的信息告诉您。另外,您可以在其中放置一个断点,然后查看为什么会递归调用它。最简单的调试,stackoverflows…@ReedCopsey private DateTime?日历日期;公共约会时间?Calendardate{get{return this.Calendardate;}set{if((Calendardate!=null)| |!Calendardate.Equals(value)){this.Calendardate=value;this.OnPropertyChanged(“Calendardate”);this.RefreshEncountertimes();}}}}@AlanWayne有什么东西导致了一个“循环”,所以它一直调用它。很可能有什么东西正在侦听一个已更改的属性,这将触发
Calendardate
,以便在运行
RefreshEncountertimes
时进行设置。。。
  // search for encounters of the calendardate
    private void RefreshEncountertimes()
    {
        // consume the WCF service.
        this.dataservice.GetEncounterDetailsCompleted += (s, e) =>
            {
                this.Encounterdetails = e.Result;
                this.ListCount = Encounterdetails.Count();   //<---CRASHES WITH INFINITIE LOOP
            };

        // call the WCF service
        this.dataservice.GetEncounterDetailsAsync(Calendardate);
    }
 private int listcount;
    public int ListCount
    {
        get
        {
            return listcount;
        }
        set
        {
            this.listcount = value;
            OnPropertyChanged("ListCount");
            CanFindPatient = ListCount > 0; 
        }
    }