2014-06-13 9 views
2

ViewModel에 바인딩하려는 DateTime 유형의 속성이 있습니다. 속성을 바인딩 할 때 바인딩 형식이 참조 형식이어야한다는 오류 및 오류가 나타납니다. 이 속성을 내 viewmodel에 바인딩하고 변경 사항을 알리는 방법은 무엇입니까? 여기DateTime 속성을 내 viewmodel에 바인딩하는 방법은 무엇입니까?

set.Bind (StartDate).To (vm => vm.StartDate);

를보기 속성이다

즉, 컴파일러 에러의 원인이되는 코드는 다음과 같다.

public static DateTime StartDate { get; set; }

+0

이 꽤 좋은 첫 질문을 참조하십시오! 응답자를 도울 수없는 특정 코드를 포함 할 수 있습니다. 또한 추가로 볼 수있는 것 (현재까지 3 개의 뷰만 있음)이 아닌 다른 특정 용도의 디스플레이 기술 및 언어로 태그를 지정할 수도 있습니다. – BradleyDotNET

답변

2

유창함 결합하는 일반적인 패턴이다

set.Bind (target).For(v => v.TargetProperty).To (vm => vm.SourceProperty); 

이 소스 DataContext에 (일반적으로 뷰 모델)의 SourcePropertytargetTargetProperty 바인딩.

For을 생략하면 MvvmCross가 기본 속성을 찾습니다.

코드에서 현재 StartDate의 기본 속성을 ViewModel의 StartDate에 바인딩하려고합니다. 나는 당신이 대신 원하는 것은이었다 의심 : 유창 데이터 바인딩 구문에 대한 자세한 내용은

set.Bind(this).For(v => v.StartDate).To(vm => vm.StartDate); 

는 위키 http://github.com/mvvmcross/mvvmcross/wiki

+0

스튜어트에 응답 해 주셔서 감사합니다. 이것은 작동하지 않지만. 컴파일러 오류가 발생했습니다. "lambda 표현식을 '대리자가 아닌'string '유형으로 변환 할 수 없습니다. – user3630447

+0

질문을 편집하여 뷰 속성이 바인딩하려는 것을 보여줄 수 있습니까? – Stuart

+0

죄송합니다. 내 설명에 코드가 없으면 쉽게 누락 된 것 같습니다. 나는 또한 시도했다 : 'set.Bind (this) .For ("StartDate"). (vm => vm.StartDate); ' 하지만보기 모델에서 setter를 실행하는 것처럼 보이지 않는다. – user3630447

관련 문제