2011-08-12 9 views
0

많은 셀이 들어있는 Grid가 있다고 말하면이 셀의 배경을 스타일의 데이터 클래스 속성에 바인딩합니다. 실제로 데이터 클래스 속성은 Color 유형이며, 하지만 이것은 문제가되지 않습니다. 변환기를 사용하여 Brush으로 변환 할 수 있기 때문입니다.),바인딩에서 종속성 속성 값 재설정

내 데이터 클래스의 일부 조건이 참일 때 배경을 빨간색으로 설정하고 싶지 않은 경우 원하는 경우 데이터가 변경 될 수 있으므로 데이터가 변경 될 수 있으므로 조건이 true 및 false가 될 수 있습니다. 배경색 빨간색 또는 기본값

Binding.DoNothingDependencyProperty.UnsetValue에 대해 알고 있습니다. 둘 다 c가 아닙니다. ase, 나는 또한 Cell.BackgroundProperty.DefaultValue을 시도했지만 null입니다.

그래서 바인딩 된 데이터 속성에서 값을 다시 설정하도록 종속성 속성을 강제로 되돌릴 수있는 값이 있습니까?

감사합니다.

답변

1

DataTrigger을 사용할 수 있고 속성이 true 인 경우 값을 바인딩하기 때문에 매우 편리한 부울 속성 만있는 경우 속성이 항상 바인딩되는 것은 아닙니다.

<Style.Triggers> 
    <DataTrigger Binding="{Binding MyCondition}" Value="True"> 
     <Setter Property="Background" Value="Red"/> 
    </DataTrigger> 
</Style.Triggers> 

기본값과 빨간색 중 하나만 결정한 경우 추가 속성이나 바인딩이 필요하지 않습니다. 나는, 텍스트 조건을 구문 분석 및 그리드 행에 대해 실행되고, 따라해야한다고,

+0

좋은 제안 (값을 재설정 은 내 지식 바인딩에 수 없습니다),하지만 난 부울없는 속성이 이것을 적용 할 색을 결정하십시오. BTW 행은 어떤 유형이든 상관 없습니다. EntityViewModel에서 bool을 사용할 수 없기 때문에이 기능을 일부 핵심 프레임 워크에 넣기를 원합니다. –

+1

@ArsenMkrt :이 조건이 충족되면 변환기를 넣고 'MultiTrigger'를 사용할 수 있습니다. 여러 속성에 종속적입니다. –

+0

내 질문에 대답하지 않지만 트리거를 사용하는 좋은 조언, 그냥 내 구멍을 내 비즈니스 논리를 설명 할 수 없다 왜, 왜 내가 트리거를 사용할 수 없습니다 감사합니다 –