2016-08-25 6 views
0

내가 속성이라고로드에 바인딩 된이 같은 Teleric RadGrid보기가에 DataTrigger 바인딩 :WPF는 다른 속성

<telerik:RadGridView x:Name="myRadGridView" 
         ItemsSource="{Binding Load}"> 

내가라는 속성에 바인딩 할 같은 그리드에 대한 DataTrigger이를 checkColor는 RadGridView의 Load 속성과 같은 클래스에 있습니다. 두 속성이 같은 클래스에 있기 때문에 이것이 작동하지 않는다고 생각합니까? 올바른 구문은 무엇입니까?

 <telerik:RadGridView.Resources> 
      <Style TargetType="telerik:GridViewRow"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding checkColor}" Value="true"> 
         <DataTrigger.Setters> 
          <Setter Property="Background" Value="Blue" /> 
         </DataTrigger.Setters> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </telerik:RadGridView.Resources> 
+2

을 _? "나는 두 속성이 같은 클래스에 있기 때문에이 작동하지 않을 생각"_ - 왜 것 그럴까요? 위에서 언급 한 모든 문제는'Style' 리소스를 선언하는 것이지만, 적용하고자하는 객체의'Resources' 인스턴스에서 발생하는 것일 수 있습니다. 그것은 작동하지 않습니다. 해당 객체의 _parent_ 객체 중 하나에서 선언해야합니다. 그게 문제가 아니라면 문제를 확실하게 재현 할 수있는 좋은 [mcve]를 제공하십시오. –

+0

를 데이터 트리거 위에 놓으면 스타일이 적용됩니다. (스타일은 내 RadGridView 정의 안에 있습니다.) checkColor 속성에 중단 점을 설정 했으므로 실행되지 않습니다. 나는 그것을 발견 할 수 없다고 생각한다 - 그것을 확인하는 방법이 있는가? – Jeff

+0

다른 길을 찾았습니다. 의견을 주신 Peter에게 감사드립니다. – Jeff

답변

0

p.s. 이것을 재검토하고 마침내 진정한 해결책을 찾았습니다.

1) 참조하려는 클래스를 가리키는 항목을 창에 추가했습니다.

<DockPanel.Resources> 
     <local:Changes x:Key="MyViewModel"/> 
    </DockPanel.Resources> 

3) 내 세터를 설정 그것을 지점으로 바인딩 :

<Setter Property="Background" Value="{Binding Source={StaticResource MyViewModel}, Path=checkColor}"/> 

오래된 "

xmlns:local="clr-namespace:MyClass" 

2) 부모 구성 요소에 대한 정적 리소스를 생성 솔루션 ":

끝내서 끝내는 probl 체크 콜라 함수가 RadGridView가 바인딩 된 DataTable의 새로운 열로 반환 할 데이터를 넣음으로써 결과를 얻었습니다. 열이 RadGridView의 바인딩 범위의 일부이기 때문에 나는이 같은 DataTrigger에 바인딩 수 :

<telerik:RadGridView.Resources> 
    <Style TargetType="telerik:GridViewRow"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding checkColorDataColumn}" Value="1"> 
      <DataTrigger.Setters> 
       <Setter Property="Background" Value="Blue" /> 
      </DataTrigger.Setters> 
     </Style.Triggers> 
    </Style> 
</telerik:RadGridView.Resources>