2014-07-21 2 views
0

부울 상태에 따라 ListView에 값을 표시하려고하지만 작동하지 않습니다. 내가 뭘 잘못하고 있는지 말해 줄 수있어?부울이 작동하지 않는 트리거

<ListView x:Name="LiViTest" Grid.ColumnSpan="4" Margin="0,0.01,0,0" Grid.Row="1" SelectionMode="Single"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header=" numb " > 
      <GridViewColumn.CellTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
       <TextBlock x:Name="TxtTest" /> 
       </StackPanel> 
       <DataTemplate.Triggers> 
        <DataTrigger Binding="{Binding Path=boolTest}"> 
         <DataTrigger.Value> 
          <sys:Boolean>False</sys:Boolean> 
         </DataTrigger.Value> 
         <Setter TargetName="TxtTest" Property="Text" Value="test false"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding Path=boolTest}"> 
         <DataTrigger.Value> 
          <sys:Boolean>True</sys:Boolean> 
         </DataTrigger.Value> 
         <Setter TargetName="TxtTest" Property="Text" Value="test true"/> 
        </DataTrigger> 
       </DataTemplate.Triggers> 
      </DataTemplate> 
      </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 

답변

1

코드가 올바르게 작동하거나 올바른 데이터 구조가 있으면 잘 작동합니다. 이 작업을 수행하려면 boolTest 속성은 bool 속성 안에있는 항목이 GridView이어야합니다. 당신이GridView 외부 을있는 하나의 boolTest 속성에 데이터 바인딩하려고하는 경우

또는, 당신은 다른 Binding를 사용해야합니다. 그러나 실제로 설정하는 방법은 귀하의 DataContext에 달려 있습니다.

당신이 필요한 boolTest 속성이 이미 Window.DataContext로 설정 한 어떤 클래스의 인스턴스를 가지고 있다고 가정하면, 다음에 액세스 할 RelativeSource Binding을 사용할 수

<DataTrigger Binding="{Binding DataContext.boolTest, RelativeSource={RelativeSource 
    AncestorType={x:Type Window}}}" Value="False"> 
    <Setter TargetName="TxtTest" Property="Text" Value="test false"/> 
</DataTrigger> 
관련 문제