2010-08-11 2 views
0

컨트롤 채우기 색을 C#의 부울 값에 바인딩하려고합니다. 따라서 false이면 색은 빨강 색이고 true이면 색은 녹색입니다.C#에서 XAML 컨트롤 채우기 색을 제어하는 ​​올바른 방법은 무엇입니까?

XAML에 처음 접했지만 처음부터 좋은 습관을 원합니다.

감사합니다,

+0

원하는 색상을 반환하고 채우기 색상을 해당 속성에 바인딩하는 BoolAsColor 속성을 추가 할 수만 있습니까? –

+0

그래서 (나의 무지에 대한 사과) 내 부울을 사용자 정의 클래스로 만들고 채우기 색상 속성을 추가 하시겠습니까? – Ben

답변

1

보기 모델은 UI가 사용할 수있는 형식으로 데이터를 변환, 그래서에서 논리적 변환을 수행하는 형태의 뷰 모델에 유형 Color의 속성을 생성하기 위해 존재 boolean 값을 Color 값에 저장합니다. 이 속성 'DisplayColor'를 호출하십시오.

ViewModel의 INotifyPropertyChanged 인터페이스를 사용하여 부울 값이 색상을 변경할 때마다 (시간 경과에 따라 변경되는 경우) 'DisplayColor'속성에서 이벤트를 발생시킵니다. 이렇게하면 부울 값이 변경 될 때마다 UI가 자동으로 업데이트됩니다.

그런 다음 컨트롤의 color 속성을 뷰 모델의 새로운 'DisplayColor'속성에 바인딩합니다. DataContext을 ViewModel로 설정했을 것입니다.

나는 또한 부울과 색 사이의 변환을 수행하는 IValueConverter을 구현할 수 어제 :

관련 문제