2009-02-11 14 views
6

Hücre için aldığım değer belirli bir tür olduğunda, bir metin bloğunu görüntülemek için bir tetikleyici ayarlamaya çalışıyorum.WPF Tetikleyicileri

Bir görüntüyü aynı durumdayken başarıyla görüntüledim, ancak bu durumda görüntü istemiyorum, ancak bazı metinler.

Çalıştırmak için test.try için satırları yorumladıktan sonra. Yorumlanan kod çalışır! Metin bloğu metni içinde xxx yok.

Bu benim girişimleri (ler) Bir TextBox Görüntüden, tetikleyicinize dayalı DataTemplate türünü değiştirmek gerekir

<wpfToolkit:DataGridTemplateColumn Header="P" Width="20"> 
    <wpfToolkit:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <!-- <DataTemplate.Triggers> --> 
      <!-- <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="1"> --> 
      <TextBlock Text="XXX" /> 
      <!-- </DataTrigger> --> 
      <!-- <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="2"> --> 
      <!-- <Setter TargetName="cablePrecedenceIndicatorImage" Property="Source" Value="Resources\Images\small_exclamation_mark.png"/> --> 
      <!-- </DataTrigger> --> 
      <!-- </DataTemplate.Triggers> --> 
     </DataTemplate> 
    </wpfToolkit:DataGridTemplateColumn.CellTemplate> 
</wpfToolkit:DataGridTemplateColumn> 
+0

birisi – Gishu

+0

evet, ben bir tane eklemek için anlamaya olamaz .. Kod pasajınızı yedi!? – mike

+0

çalıştı, teşekkürler Cameron! – mike

cevap

4

DataTemplate'in içeriğini TextBlock'a ayarlayın ve görünebilirliği tetikleyiciyi temel alarak ayarlayın. Ben ikinci DataTrigger geçerli kapsam içinde var olmayan bir hedef adına gönderme çünkü için ne olduğundan emin değilim, bu yüzden bu sığar nasıl bilmiyorum. Parlak

<DataTemplate> 
    <TextBlock x:Name="block" Text="XXX" Visibility="Collapsed"/> 
    <DataTemplate.Triggers> 
     <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="1"> 
      <Setter TargetName="block" Property="Visibility" Value="Visible"/> 
     </DataTrigger> 
     <!--<DataTrigger Binding="{Binding PrecedenceIndicator}" Value="2"> 
      <Setter TargetName="cablePrecedenceIndicatorImage" Property="Source" Value="Resources\Images\small_exclamation_mark.png"/> 
     </DataTrigger>--> 
    </DataTemplate.Triggers> 
</DataTemplate> 
+0

Harika, teşekkürler! Alt kısımdaki 'cevabım' bölümüne bakın! – mike

0

olduğunu.

<DataTemplate> 
    <ContentPresenter x:Name="Presenter" /> 

    <DataTemplate.Triggers> 
     <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="1"> 
      <Setter TargetName="Presenter" Property="Content"> 
       <Setter.Value> 
        <TextBlock Text="XXX" /> 
       </Setter.Value> 
      </Setter> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="2"> 
      <Setter TargetName="cablePrecedenceIndicatorImage" Property="Source" Value="Resources\Images\small_exclamation_mark.png"/> 
     </DataTrigger> 
    </DataTemplate.Triggers> 
</DataTemplate> 
+0

'DataGridTemplateColumn.Resources' etiketi 'XML ad alanında mevcut değil' clr-namespace: Microsoft.Windows.Controls; assembly = WPFToolkit ' – mike

+0

close! 'System.Windows.Controls.TextBlock', 'Setter.Value' için geçerli bir değer değil; Visual veya ContentElement'ten türetilen değerler desteklenmez. – mike

1

! Teşekkürler yığınlar :)

Bu, neyle sonuçlandım. PrecedenceIndicator = 1 ise, Display!, PrecendenceIndicator = 2 ise, görüntülenir!

<wpfToolkit:DataGridTemplateColumn Header="A" Width="20"> 
    <wpfToolkit:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock> 
       <TextBlock x:Name="block1" Text="&#x21;" Visibility="Collapsed"/> 
       <TextBlock x:Name="block2" Text="&#x21; &#x21;" Visibility="Collapsed"/> 
      </TextBlock> 
      <DataTemplate.Triggers> 
       <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="1"> 
        <Setter TargetName="block1" Property="Visibility" Value="Visible"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding PrecedenceIndicator}" Value="2"> 
        <Setter TargetName="block2" Property="Visibility" Value="Visible"/> 
       </DataTrigger> 
      </DataTemplate.Triggers> 
     </DataTemplate> 
    </wpfToolkit:DataGridTemplateColumn.CellTemplate> 
</wpfToolkit:DataGridTemplateColumn> 
+0

Harika görünüyor! Memnun kaldım. –