Wpf 在方法结束之前更新数据绑定

Wpf 在方法结束之前更新数据绑定,wpf,c#-4.0,data-binding,mvvm,Wpf,C# 4.0,Data Binding,Mvvm,过去我非常喜欢在stackoverflow.com上阅读解决方案。现在我有个问题找不到答案。我们开始吧:-) 我在代码中使用了两个第三方组件。一个是ExtendenWPF工具包中的忙碌指示器。请参阅XAML <tool:BusyIndicator IsBusy="{Binding RequirementsModel.Working}" BusyContent="Fetching Data..." > <local:RequirementsTree Model="{Bin

过去我非常喜欢在stackoverflow.com上阅读解决方案。现在我有个问题找不到答案。我们开始吧:-)

我在代码中使用了两个第三方组件。一个是ExtendenWPF工具包中的忙碌指示器。请参阅XAML

<tool:BusyIndicator IsBusy="{Binding RequirementsModel.Working}" BusyContent="Fetching Data..." >
    <local:RequirementsTree Model="{Binding RequirementsModel}" x:Name="Sample" />
</tool:BusyIndicator>
正如您所看到的,属性“Working”被更改,WPF视图中的绑定应该可以正常工作。但它什么也没发生。我猜出现这种情况是因为视图的更新发生在方法结束之后。但到那时,工作还是假的。我还知道我可以在调用方法中设置属性,并使haschilds()被异步调用,但这将包括另一个第三方组件。你知道怎么做吗

谢谢
Jan

用户界面的更新发生在执行工作的同一个线程上,这是正确的,您必须将该工作转移到另一个线程。但是如何做到这一点呢?正如我提到的,我需要让它在我的模型中工作。我对任何想法都持开放态度:-)我发现haschilds()方法是由另一个XAML文件中的数据绑定触发的。如何在单独的线程中启动数据绑定的操作?好的,我找到了一个解决方案。我确实改变了控制。现在还有其他问题。。。
  class RequirementsModel : ITreeModel, INotifyPropertyChanged
  {

        private bool _working;
        public bool Working
        {
            get { return _working; }
            set { _working = value; RaisePropertyChanged("Working"); }
        }



        public bool HasChildren(object parent)
        {
            Working = true;

            /* Data access shall happen here
                Entered dummy code  */

            System.Threading.Thread.Sleep(2000);

            bool value = true;

            Working = false;

            return value;

        }


        public event PropertyChangedEventHandler PropertyChanged;

        public void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(propertyName));
        }

    }

}