2010-12-06 23 views
5

Birkaç DataGridTemplateColumns içeren DataGrid var. Sorunum, şu anda seçili olan satırın bazı hücrelerin ön planlarını beyaza dönüştürmesi, yani metni beyaz yapmasıdır. TextBlocks içeren DataGridTemplateColumns doğru davranır ve Satır seçildiğinde TextBoxs içeren DataGridTemplateColumns sırasında beyaza dönüşür.WPF DataGridTemplateColumn IsOnected ForgroundColor beklendiği gibi çalışmıyor

Bu sorunun neden veya nasıl giderileceğini bilen var mı?

Bu solution:'u denedim ancak yalnızca TextBlock'ların etkilenmesini sağlayabilir, neyin yanlış olabileceğini kimse bilmiyor mu?

cevap

4

Tetikleyicinin neden bir TextBox ForeGround'u etkilemeyeceğine pek emin değilim ancak normalde, seçim düzenleme rengi, hücre düzenleme modundayken etkin olmamalıdır, dolayısıyla TextBox'ın değeri reddetmesinin nedeni bu olabilir ama emin değilim. DataGridTextColumn kullandığınızda ve düzenleme moduna girdiğinizde aynı etkiyi göreceksiniz, TextBox Tetikleyiciden ön plana sahip olmayacak ancak TextBlock gerçekleştirecektir. DataGrid'de seçilen tüm metin kutularının bir beyaz ön uygulamak için size TextBox çünkü DataGrid varsayılan olarak Foreground tetikleyebilir olamaz Görünüşe

<DataGrid ...> 
    <DataGrid.Resources> 
     <Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}" > 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Foreground" Value="White"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
     <!-- Workaround for the TextBox --> 
     <Style TargetType="TextBox"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridCell}}, Path=IsSelected}" Value="True"> 
        <Setter Property="Foreground" Value="White"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </DataGrid.Resources> 
    <!-- ... --> 
</DataGrid> 
+0

(bu da düzenleme modunda olan bir TextBox etkileyecek unutmayın) bunu yapabilirsiniz. Ön Plan ve Seçili Metin Ön Plan, Moozhe'nin [bu cevap] için yaptığı yoruma göre aynı anahtardır (http://stackoverflow.com/a/10850718/1466627). –

İlgili konular