DataTrigger Not Firing in DataGrid

I am trying to implement a DataTrigger on my DataGrid in XAML Code. My Data grid consists of Datatable inside But I couldnt get it whats wrong with my code because my trigger isnt firing. I have searched many articles on internet but I dont know what wrong I am doing Any help in the regard will be appreciated

Here is my XAML code

           <DataGrid CanUserAddRows="False"   HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" ColumnWidth="*"  Grid.Row="0" AutoGeneratedColumns="DataGrid_HideOrMoveColumn"   ItemsSource="{Binding Path=FaultDataView}"  x:Name="dataGrid_faultrec" Background="{x:Null}" BorderBrush="Black" FontWeight="Normal" Margin="10,20,10,10" FontSize="14" >                         <DataGrid.Columns >                             <DataGridTemplateColumn  Header="Delete">                                 <DataGridTemplateColumn.CellTemplate>                                     <DataTemplate>                                         <!--<Button   x:Name="Delete_Fault" Content="Delete" Click="Delete_Fault_Click" Background="Red" />-->                                         <Button   x:Name="Delete_Fault"  Click="Delete_Fault_Click" Background="White" >                                             <Image Source="Resources\quit.png" Height="20" ></Image>                                         </Button>                                     </DataTemplate>                                 </DataGridTemplateColumn.CellTemplate>                             </DataGridTemplateColumn>                             <DataGridTemplateColumn  Header="Edit ">                                 <DataGridTemplateColumn.CellTemplate>                                     <DataTemplate>                                         <Button   x:Name="Edit_Fault" Click="Edit_Fault_Click" Background="White" >                                             <Image Source="Resources\pencil.png" Height="20"></Image>                                         </Button>                                     </DataTemplate>                                 </DataGridTemplateColumn.CellTemplate>                             </DataGridTemplateColumn>                         </DataGrid.Columns>                              <DataGrid.RowStyle>                                 <Style TargetType="DataGridRow">                                 <Setter Property="Background" Value="Yellow" />                                  <Style.Triggers>                                     <DataTrigger Binding="{Binding Flag}" Value="True">                                             <Setter Property="Background" Value="Red" />                                         </DataTrigger>                                     <DataTrigger Binding="{Binding Flag}" Value="False">                                         <Setter Property="Background" Value="Green" />                                     </DataTrigger>                                 </Style.Triggers>                                 </Style>                             </DataGrid.RowStyle>                      </DataGrid> 

My Cs File Code

        public event PropertyChangedEventHandler PropertyChanged = delegate { };          public bool Flag { get; set; }         protected void OnPropertyChanged(string property)         {             PropertyChangedEventHandler handler = PropertyChanged;             if (handler != null)                 handler(this, new PropertyChangedEventArgs(property));         }          public void Add_Fault(List<faultview> _lastHeaderbody)         {              is_TP = false;             is_continuous = false;             is_doubtful = false;             int i = 0;              try             {                 foreach (var row in _lastHeaderbody)                 {                     // total_L_Points += row.Severity;                     total_L_Points = GetTotalLinearPointFromDB(GetCurrentHeaderRollId());                     faults.AddRange(_lastHeaderbody);                  }                  foreach (var row in _lastHeaderbody)                 {                     DataRow dr = FaultDataTable.NewRow();                     //dr["Meter"] = row["Location"];                     foreach (var temp in fault_col_heading)                     {                         if (fault_bind_field[i] == "Location")                         {                             dr[temp] = row.Location;                           }                         if (fault_bind_field[i] == "StartMeter")                         {                             dr[temp] = row.StartMeter;                          }                          if (fault_bind_field[i] == "EndMeter")                         {                             dr[temp] = row.EndMeter;                          }                         else if (fault_bind_field[i] == "Severity")                         {                             dr[temp] = row.Severity;                          }                         else if (fault_bind_field[i] == "Description")                         {                             dr[temp] = row.Description;                          }                         else if (fault_bind_field[i] == "Type")                         {                             dr[temp] = row.Type;                          }                         else if (fault_bind_field[i] == "id")                         {                             dr[temp] = row.id;                          }                         else                         {                             //do nothing                         }                         i++;                     }                      if(_lastHeaderbody[0].Description== "Double Pick")                     {                        // is_TP = true;                         Flag = true;                         OnPropertyChanged("Flag");                     } } 
Add Comment
0 Answer(s)

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.