2012-08-27 3 views
0

저장 단추를 적절히 사용하도록보기의 데이터가 수정되었는지 확인하는 우아한 방법을 제안 해 주시겠습니까?화면이 수정되었는지 확인하는 좋은 방법은 무엇입니까?

감사합니다.

+0

의 수 절약에

을 편집 : 전체의 클래스는 다음과 같이 보일 것이다

? mvvm을 사용하고 있습니까? 그것은 mvvm에서 비교적 쉽고 우아합니다. –

+0

예, 내 태그에서 볼 수 있듯이 Caliburn.micro를 사용합니다. –

답변

0

Caliburn.micro에서 MVVM을 사용한다고 가정하면 명령에 Can-convention이 있습니다. 그래서, 당신은 문자열 속성라는 이름이 비어 있지 않은 경우 저장 버튼을 사용하려면 가정, 당신은 단순히 뷰 모델에이 방법을 추가 클래스를 가정

public bool CanSave() 
{ 
    if(String.IsNullOrEmpty(UserName)) 
     return false; 

    return true; 
} 

이 PropertyChangedBase 또는 화면 상속, 그리고 당신이 버튼을 Name = "저장", UserName이 비어 있으면 비활성화됩니다. 뷰에서 데이터를 변경하는 데 관심이있는 경우이 예제 UserName의 관련 속성은 뷰의 입력 영역에 바인딩되어야합니다. 예를 들어 UserName이라는 TextBox를 사용하면 Caliburn을 설정할 수 있습니다. 협약에 의한 구속력. 실제로 다른 데이터 당신이 무엇에 관해 얘기하는지 화면

public class UserViewModel : PropertyChangedBase 
{ 
    private string _savedUserName; 

    public string UserName{ get; set; } 

    public bool CanSave() 
    { 
     return !UserName.Equals(_savedUserName); 
    } 

    public void Save() 
    { 
     //Save the data 

     _savedUserName = UserName; 
    } 
} 
+0

레코드를 편집하고 필드가 비어 있지 않으면 뭔가 변경되지 않는 한 저장하기를 원하지 않습니다. –

+0

음, 저장된 값과 값이 같을 때 저장 버튼이 비활성화 된 상태로 유지되도록 원래 값을 그대로 유지해야합니다. 내 대답을 제안으로 업데이트하겠습니다. –

+0

나는 더 우아한 뭔가를 원했지만 어쨌든 고맙습니다. –

관련 문제