2010-07-07 50 views
26

我有以下的风格,但我需要让编程:如何设置样式编程

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

回答

36

在代码背后的控制的文件,请尝试:

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

FindResource(“ResourceName”)和Resources [“ResourceName”]之间有什么区别? – SepehrM 2014-09-03 11:23:25

+0

有了这个,我无法在Window的构造函数中找到样式,但是可以使用'FindResource'方法。 (这是一个抽象类,在几个地方继承,没有定义XAML。) – ANeves 2015-01-08 19:24:41

21

设置x:Key在XAML &在后台代码使用:

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

嗨,我们可以设置样式programmaticall你喜欢这个。

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; 
相关问题