2014-12-26 4 views
0

저는 작은 프로젝트에서 작업하고 있지만 게임은 콘솔 게임 이었으므로 xaml을 사용하여 UI로 만들기로했습니다. 그리고이 문제가 있습니다. - everythink 그것이 나던 것을 제외하고 잘 작동하는 것 같다 다시 바인딩을 변경하는 것은 내가 XAML은 변경 사항을 다시 바인딩하지 않습니다.

public class BaseViewModel : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    protected void OnPropertyChanged(string prop) 
    { 
     if (this.PropertyChanged != null) 
     { 
      var propertyChangedArg = new PropertyChangedEventArgs(prop); 
      this.PropertyChanged(this, propertyChangedArg); 
     } 
    } 
} 

또한 컬렉션은 ObservableCollection에를 사용하여 메신저에 대한

을에서 INotifyPropertyChanged 계승 BaseModelView 클래스가 같군,하지만 다시 결합하지 나던 변경.

나는 각 클래스의 모든 속성에서 OnPropertyChanged를 호출하지 않기 때문에 여기에서 문제가 발생한다고 생각한다. 전체적으로 호출한다. 하지만 클래스는 오픈 소스로 여기 내가이 아니 숨겨진 프로젝트를 어쨌든, 그 평균을 REPO를 연결 것이다

public Player Player 
{ 
    get { return this.player; } 
    set 
    { 
     this.player = value; 
     this.OnPropertyChanged("Player"); 
    } 
} 

처럼 .. 잘 모릅니다, 어쩌면 더 쉽게 문제를 찾을 수 있습니다 - http://goo.gl/mFgCXI

I을 누군가가 저를 도울 수 있기를 바랍니다. 메신저가 며칠 동안 갇혀서 움직이지 않기 위해 고칠 방법을 알고 있기 때문에.

고마워.

+0

실제 플레이어를 변경할 때'OnPropertyChanged' 만 발생하지만'Player' 속성이 변경된 경우가 아닙니다. – Jcl

+0

쉬운 방법으로 'PropertyChanged'를 구현하려면 https ://github.com/Fody/PropertyChanged (나는 어떤 식 으로든 Fody와 제휴하지 않고 그냥 추천 만한다.) – Jcl

+0

고마워, 매우 유용하게 보이고 그게 문제라고 생각했다. –

답변

0

Github에서 코드를 보았습니다. 바인드 될 모든 클래스에 INotifyPropertyChanged를 구현해야합니다. 또한 바인딩 할 각 속성은 OnPropertyChanged 알림을 발생시켜야합니다.

Monstor & 히어로 클래스의 속성에 바인딩되어 있지만 속성 (UI에 바인딩 됨)이 OnPropertyChanged 알림을 발생시키지 않는 것을 확인했습니다.

+0

그래, 그게 문제가 될 수 있다고 생각, 시간 내 주셔서 감사합니다 .. –

0

바인딩 모드 TwoWay를 시도하고 다시 테스트 해보십시오.

관련 문제