2010-07-07 18 views
26

Aşağıdaki stili var ama programlı yapmak gerekir:stilini nasıl ayarlanır programlı

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

cevap

36

yılında arka planda kodlama kontrol dosyası, deneyin: x:Key

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

FindResource ("ResourceName") ve Resources ["ResourceName"] arasındaki fark nedir? – SepehrM

+0

Bununla birlikte, bir Window'un yapıcısında stili bulamadım, ancak 'FindResource'method ile yapabildim. (Bu, çeşitli yerlerde ve tanımlanmış XAML içermeyen soyut bir sınıftır.) – ANeves

21

Set XAML & yılında kullanılmaya arka planda kodlama:

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

Merhaba biz stil programmaticall ayarlayabilirsiniz bunu beğendi.

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;