2012-07-12 4 views
0

WPF4 응용 프로그램에서 MVVM을 사용하고 있습니다.Infragistics xamdatagrid에서 변경된 데이터를 기반으로 명령을 활성화/비활성화하는 방법은 무엇입니까?

내 응용 프로그램에서 ViewModel에는 ObservableCollection ProductsList 속성, ICommand Save 명령 속성이 있습니다. Product 클래스에는 ProductName 및 Price라는 두 개의 속성이 있습니다.

UI에서 창 DataContext가 ViewModel에 바인딩되고 xamDataGrid의 DataSource가 ProductsList 속성에 바인딩되고 단추가 저장 속성에 바인딩됩니다.

사용자가보기에서 가격 열을 변경합니다.

내가하려고하는 것은 응용 프로그램이 처음 시작될 때 저장하려고하는 것입니다. 저장하지 않으려면 저장 버튼이 비활성화됩니다. 사용자가 제품 가격 변경과 같이 레코드를 변경하면 SAVE 버튼이 활성화됩니다.

제 질문은 : xamDataGrid가 변경된 데이터가 변경되었음을 나타내는 속성이 있습니까 (데이터 격자가 더러울 수 있습니다)? 이러한 속성이있는 경우이 속성을 ViewModel의 속성 (예 : bool DataChanged)에 바인딩 한 다음이 DataChanged 속성을 사용하여 SAVE 단추를 사용하도록 "저장"명령의 CanExcuteMethod를 설정합니다.

또는이 기능을 수행하는 다른 방법이 있습니까?

감사합니다.

답변

0

XamDataGrid는 데이터 저장소를 인식하지 못하거나 자체가 아닌 다른 소스에서 데이터가 변경되어 UI 컨트롤에서 추적해서는 안되기 때문에이 속성을 노출하지 않습니다.

가장 좋은 방법은 View의 컨트롤을 사용하는 경우 ViewModel에 View에 대한 의존성이 있으므로 동일한 VeiwModel로 다른 View를 사용할 수 없으므로 ViewModel에서이를 추적하는 것입니다.

이렇게하려면 그리드를 바인딩 할 때처럼 ViewModel에 속성을 만들고 ViewModel의 데이터가 변경 될 때 값을 설정하십시오.

관련 문제