2010-07-07 12 views
26

Ich habe folgenden Stil, aber ich muß es programmatisch machen:Wie der Stil festlegen programmatisch

<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> 

Antwort

36

In dem Code-Behind-Datei der Steuerung, versuchen:

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

Was ist der Unterschied zwischen FindResource ("ResourceName") und Resources ["ResourceName"]? – SepehrM

+0

Mit diesem konnte ich nicht den Stil auf einen Konstruktor von Windows finden, aber mit der Methode 'FindResource' konnte ich. (Es handelt sich um eine abstrakte Klasse, die an mehreren Stellen und ohne definierten XAML geerbt wurde.) – ANeves

21

Set x:Key in XAML & in Code-Behind-Einsatz:

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

Hallo wir Stil programmaticall einstellen Das gefällt dir.

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; 
Verwandte Themen