컨트롤 채우기 색을 C#의 부울 값에 바인딩하려고합니다. 따라서 false이면 색은 빨강 색이고 true이면 색은 녹색입니다.C#에서 XAML 컨트롤 채우기 색을 제어하는 올바른 방법은 무엇입니까?
XAML에 처음 접했지만 처음부터 좋은 습관을 원합니다.
감사합니다,
벤
컨트롤 채우기 색을 C#의 부울 값에 바인딩하려고합니다. 따라서 false이면 색은 빨강 색이고 true이면 색은 녹색입니다.C#에서 XAML 컨트롤 채우기 색을 제어하는 올바른 방법은 무엇입니까?
XAML에 처음 접했지만 처음부터 좋은 습관을 원합니다.
감사합니다,
벤
보기 모델은 UI가 사용할 수있는 형식으로 데이터를 변환, 그래서에서 논리적 변환을 수행하는 형태의 뷰 모델에 유형 Color
의 속성을 생성하기 위해 존재 boolean 값을 Color
값에 저장합니다. 이 속성 'DisplayColor'를 호출하십시오.
ViewModel의 INotifyPropertyChanged
인터페이스를 사용하여 부울 값이 색상을 변경할 때마다 (시간 경과에 따라 변경되는 경우) 'DisplayColor'속성에서 이벤트를 발생시킵니다. 이렇게하면 부울 값이 변경 될 때마다 UI가 자동으로 업데이트됩니다.
그런 다음 컨트롤의 color 속성을 뷰 모델의 새로운 'DisplayColor'속성에 바인딩합니다. DataContext
을 ViewModel로 설정했을 것입니다.
IValueConverter
을 구현할 수 어제 :
처음으로 이런 짓을. 그런 다음 부울에 직접 color 속성을 바인딩하지만 바인딩에 새 IValueConverter를 지정하십시오.
이 방법은 바인딩하려는 클래스를 제어 할 수없는 경우 특히 유용 할 수 있습니다.
자세한 내용은 http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx을 참조하십시오.
원하는 색상을 반환하고 채우기 색상을 해당 속성에 바인딩하는 BoolAsColor 속성을 추가 할 수만 있습니까? –
그래서 (나의 무지에 대한 사과) 내 부울을 사용자 정의 클래스로 만들고 채우기 색상 속성을 추가 하시겠습니까? – Ben