2010-07-07 12 views
26

tengo el siguiente estilo pero tengo que hacerlo mediante programación:Cómo establecer el estilo de programación

<xcdg:DataGridControl MinHeight="300" 
         Name="listViewUnallocated" 
         ItemsSource="{Binding Source={StaticResource 
             cvs_unallocatedTerminals}}" 
         AllowDrop="True" 
         Drop="Grid_Drop" 
         MouseMove="Grid_MouseMove" 
         KeyUp="listViewUnallocated_KeyUp" 
         MouseDoubleClick="gridUnallocated_MouseDoubleClick" 
         ReadOnly="True" 
         DockPanel.Dock="Top"> 
    <xcdg:DataGridControl.Resources> 
     <Style TargetType="{x:Type xcdg:DataRow}" x:Name="selectedStyleTrigger"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding TerminalId}" Value="72948028"> 
        <Setter Property="Background" Value="Red" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </xcdg:DataGridControl.Resources> 

Respuesta

36

En el archivo de código subyacente del control, trate de:

this.Style = Resources["ResourceName"] as Style; 
+2

¿Cuál es la diferencia entre FindResource ("ResourceName") y Resources ["ResourceName"]? – SepehrM

+0

Con esto no pude encontrar el estilo en el constructor de una ventana, pero con el método 'FindResource' podría. (Es una clase abstracta, heredada en varios lugares y sin XAML definido.) – ANeves

21

Establecer x:Key en XAML & en el uso de código subyacente:

something.Style = (Style) FindResource("YourResourceKey"); 
0

Hola podemos establecer programmaticall estilo y me gusta esto

Style rowStyle = new Style(typeof(DataGridRow)); 

DataTrigger dataTrigger = new DataTrigger("TerminalId"); 
Binding binding = new Binding(); 
dataTrigger.Binding = binding; 
dataTrigger.Value = 72948028; 

Setter setter = new Setter(DataGridRow.BackgroundProperty, Brushes.Red); 

dataTrigger.Setters.Add(setter); 

rowStyle.Triggers.Add(dataTrigger); 
listViewUnallocated.RowStyle = rowStyle; 
Cuestiones relacionadas