필자는 본질적으로 동일한 객체의 여러 컨트롤 패널 인 UWP 응용 프로그램에서 작업하고 있습니다. Plate 객체라고 부르 자고합니다.여러 프레임과 여러 개체간에 데이터 바인딩을 유지하는 방법은 무엇입니까?
기능적으로 사용자는 특정 속성을 가진 Plate 객체를 제거 할 수 있어야하며 현재 사용 가능한 모든 Plate 객체가 해당 고유 속성과 함께 수정할 수있는 컨트롤과 함께 Main Page에 표시됩니다.
이 방법은 기본 페이지에서 그리드를 만들고 사용 가능한 각 플레이트에 대해 프레임을 그리드 열에 추가하고 각 프레임을 사용자 정의 PlateView 페이지로 이동하여 기본적으로 가로줄을 표시합니다 PlateView 열 목록.
내 문제는 각 Plate에서 해당 PlateView 로의 각 컨트롤/속성에 대한 양방향 데이터 바인딩이 가능하기를 원합니다.
지금까지 전체 수명주기를 통해 응용 프로그램의 여러 부분에서이 마스터 목록을 가져오고 수정할 수 있어야하므로 모든 플레이트 목록을 App.cs의 공용 변수로 저장했습니다.
UWP 문서에서 데이터 바인딩 설명을 이해하는 방식으로 Plate 객체가 INotifyPropertyChanged를 구현하거나 구현하는 별도의 PlateViewModel 클래스를 만들 수 있습니다.
Plate를 구현할 때 PlateView는 ViewModel을 List (this.ViewModel = App.plateList [1])의 올바른 Plate 인덱스로 설정하지만 사본을 만드는 것으로 가정합니다 ...? 따라서 PlateView에서 변수를 수정하면 실제로 App.cs.x에서 Plate 객체가 변경되지 않습니다.
새로운 PlateViewModel 클래스를 사용하면 같은 문제가 발생하지 않지만 PlateViewModel 클래스 내부에서 어떻게 작동하는지 이해할 수 없습니다. 예를 들어, MS의 문서를 보여줍니다 : 나는 PlateViewModel 내부 내부 플레이트 객체를 설정하더라도
public class RecordingViewModel
{
private Recording defaultRecording = new Recording();
public Recording DefaultRecording { get { return this.defaultRecording; } }
}
을, 나는 XAML에서 변수 호출 할 필요가 없습니다 {X : 바인드 ...} 구문을? 따라서 올바른 Plate에서 PlateViewModel에 모든 변수의 복사본을 만들어야하고 App.cs의 원래 Plate 객체에 반드시 연결하지 않아도됩니까?
감사합니다.