2016-08-21 4 views
0

MVVM WPF 프로젝트에서보기가 있습니다. DataTable (DataTable에서) DataView에 바인딩 된 페이지에서 DataGrid가 있습니다. 내가 필요하면 뷰 모델 재산권의 진정한 값에 의해 재정의되어야하는 데이터 그리드 행의 배경 색상에 대한 MultiDataTrigger를 사용하는 것입니다DataGrid MultiDataTrigger ViewModel 속성에 바인딩

public bool IsAutorized 
{ 
    get { return _isAutorized; } 
    set 
    { 
     _isAutorized = value; 
     OnNotifyPropertyChanged("IsAutorized"); 
    } 
} 

참 값의 DataRow의 속성입니다 반면. 이것은 내가 지금 가지고있는 ViewModel 속성에 대한 바인딩이 올바르지 않습니다. 속성에 중단 점을 설정하면 "catch"되지 않습니다.

<Style.Triggers> 
<Trigger Property="DataGridRow.IsSelected" Value="True"> 
    <Setter Property="Background" Value="#CCDAFF"/> 
</Trigger> 

<MultiDataTrigger> 
    <MultiDataTrigger.Conditions>                  
     <Condition Binding="{Binding Path=IsAutorized,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Page}}" Value="True" /> 
     <Condition Binding="{Binding RelativeSource={RelativeSource Self},Path=IsNotSpecific}" Value="True" /> 
    </MultiDataTrigger.Conditions> 
    <Setter Property="Background" Value="#CCF4FF" /> 
</MultiDataTrigger> </Style.Triggers> 

바인딩 문제는 매우 혼란 스럽지만 googleing을 시도했지만 아무 것도 발견하지 못했습니다. 어떤 아이디어로 열심히 할 수 있습니까?

감사합니다.

- 편집 :

"IsNotSpecific"와 "에 isSelected"는 DataView를 모두 Colmns, 즉 DataTable의, 강력한 형식의 데이터 집합 테이블에서 가져옵니다이다.

행을 선택하면 "IsSelected"필드/열이 true로 설정되고 특정 색상이 트리거됩니다. View 속성 "IsAutorized"가 true로 설정되고 DataTow (DataTable의) "IsNotSpecific"열이 "True"로 설정되면 다른 색이 표시되어야합니다.

+0

왜 당신은 그 RelativeSource를 작성 했습니까? IsAutorized는 분명히 Page의 재산이 아닙니다. – Clemens

+0

@Clemens IsAutorized는 ViewModel의 속성입니다. 나는 무엇이 효과가 있을지 모르기 때문에 모든 것을 시도해 봅니다. VM 등록 정보는 어떻게 얻습니까? –

+0

자세한 정보를 입력하십시오. –

답변

0
<Condition Binding="{Binding Path=DataContext.IsAutorized,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" Value="True" /> 

IsAutorized 속성이 주 ViewModel에있는 경우이 조건이 작동합니다.

+0

고맙습니다. 시험해 보겠습니다. –

+0

죄송합니다. "IsAutorized"는 올바르게 바인드되지 않고 호출되지 않습니다. –

+0

"IsAutorized"속성과 DataGrid의 ItemsSource를 가진 viewmodel은 무엇입니까? – ParameterX

관련 문제