2012-08-05 2 views
1

WPF listview에서 모든 textblock을 어떻게 처리 할 수 ​​있습니까? 지금은 각 텍스트 블록에 적용해야하는 스타일을 정의했습니다. 그것은 내가 원하는 것이있는 ListViewItem 스타일 블록 내에서 한 번만 적용 할 수있다이ListView 내의 모든 Textblock을 두드리는 방법

<Style x:Key="orderDetailsTextBlock" TargetType="TextBlock" > 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Status}" Value="Failed"> 
       <Setter Property="TextDecorations" Value="Strikethrough" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 

것 같습니다.

나는이

<Style x:Key="ordersListViewItemStyle" TargetType="{x:Type ListViewItem}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Status}" Value="Failed"> 
       <Setter Property="TextBlock.TextDecorations" Value="Strikethrough" /> 
      </DataTrigger> 
     </Style.Triggers>   
    </Style> 

처럼하려고 노력하지만이 작동하지 않습니다. 어떤 도움을 주시면 감사하겠습니다.

발생

<ListView x:Name="orderDetails" AlternationCount="2" ItemContainerStyle="{StaticResource ordersListViewItemStyle}" > 
    <ListView.Resources> 
     <Style TargetType="TextBlock"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Status}" Value="Failed"> 
        <Setter Property="TextDecorations" Value="Strikethrough" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.Resources> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Width="100" Header="Статус" > 
       <GridViewColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock 
              Text="{Binding Path=Status, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
              ToolTip="{Binding Path=Message, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
              TextAlignment="Center" /> 
        </DataTemplate> 
       </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 

아무것도 다음 없기 때문에 나는리스트 뷰의 XAML을 업데이트 업데이트. 나는 무엇을 잘못 했는가?

답변

2

당신은 Key없이 ListView.Resources 내부의 스타일을 정의 할 수 있습니다 (TargetType에 대한 발언 참조), 그리고 범위가 특정 ListView 안에 모든 TextBlock의 제한됩니다입니다. 예를 들어

:

<ListView x:Name="MyListView"> 
    <ListView.Resources> 
     <Style TargetType="TextBlock"> 
      <!-- Style specific content --> 
     </Style> 
    </ListView.Resources> 
    <!-- ListView content --> 
</ListView> 
1

TextBlock 스타일의 x:Key을 제거하고 ListView.Resources에 넣으면 자동으로 적용됩니다.

관련 문제