2012-03-11 4 views
0

다음과 같은 문제가 있습니다.WCF 서비스 비동기 호출 후 WPF 프로젝트의 UI 업데이트

client.GetServiceMapCompleted += (s, e) => 
      { 
       this.MyServiceMap = e.Result; 

       this.MyServiceMap.Categories.Add(new Category() { Name = " " }); 
       this.MyServiceMap.Groups.Add(new Group() { Name = " " }); 

       this.MyServiceMap.Groups.Sort((a, b) => 
        { 
        return String.Compare(a.Name, b.Name); 
        }); 
       this.MyServiceMap.Categories.Sort((a, b) => 
        { 
         return String.Compare(a.Name, b.Name); 
        }); 

       this._parents = MyServiceMap.Nodes; 
       this._children = MyServiceMap.Nodes; 
      }; 

     client.GetServiceMapAsync(); 

내가 MyServiceMap, 부모와 자녀의 특성이 있습니다 UI에서

private ServiceMap _serviceMap; 
    public ServiceMap MyServiceMap 
    { 
     get 
     { 
      return _serviceMap; 
     } 
     set 
     { 
      _serviceMap = value; 
      OnPropertyChanged("MyServiceMap"); 
     } 
    } 

    private List<Node> _parents; 
    public List<Node> Parents 
    { 
     get 
     { 
      return _parents; 
     } 
     set 
     { 
      _parents = value; 
      OnPropertyChanged("Parents"); 
     } 
    } 

    private List<Node> _children; 
    public List<Node> Children 
    { 
     get 
     { 
      return _children; 
     } 
     set 
     { 
      _children = value; 
      OnPropertyChanged("Children"); 
     } 
    } 

내가 목록 상자에 데이터 그리드, 어린이와 부모에 MyServiceMap을 결합합니다.

DataGrid에서는 모든 것을 볼 수 있지만 자식 및 부모 listbox 필드는 비어 있습니다.

제 질문은 내 UI가 비동기 호출 후에 새로 고쳐지지 않는 이유이며이를 해결하는 방법은 무엇입니까? 고급의

TNX :

+0

해야 하는가? mainpage.xaml.xs의 this.loaded 이벤트에서 – Silvermind

+0

을 보았습니다. 모델을보기 위해 datacontext를 설정했습니다. 나는 항목 원본을 부모 및 자식에 바인딩합니다. 비동기를 사용하지 않으면 S – Bip

답변

1

당신은 필드와하지 (당신이 PropertyChanged 인상) 속성 그래서 당신의 UI가 변경에 대한 알림되지 않습니다를 설정하는.

this._parents = MyServiceMap.Nodes; 
this._children = MyServiceMap.Nodes; 

당신이 최소한의 XAML을 제공 할 수있는 당신이 당신의 레이아웃의 데이터 컨텍스트를 설정하는 방법

Parents = MyServiceMap.Nodes; 
Children = MyServiceMap.Nodes; 
+0

Tnx가 표시됩니다. 그 코드를보고 궁금해하는 이유는 무엇입니까? Omg 부끄러움 : D – Bip