none
Vider le contenu d'une DATAGRID en WPF RRS feed

  • Question

  • Bonjour chers amis développeur; 

    Dans mon application (réalisé en WPF) j'ai un DataGrid est une toolbox, et je veux qu'a chaque fois que l'utilisateur clique sur un élément dans la toolbox, les caractéristiques de cet élément s'affichent dans le DataGrid!! j'arrive pas a vider le contenu du DataGrid pour pouvoir afficher les caractéristique du nouveau élément sélectionné !!!! j'ai essayé datagrid.items.cler() mais  sa pose un probleme (losque je clique sur le premier élément ses caractéristique s'affichent mais lorsque je clique sur un deuxième élément au lieu de vider le datagrid et afficher les nouvelles caractéristiques il me lance une execption), j'ai essayer aussi datagrid.ItemsSources=null; mais sa fonctionne pas aussi (il vide pas le datagrid mais a chaque clique il ajoute les nouvelles caractéristique), 

    CODE SOURCE XAML

    <DataGrid x:Name="Caracter" AutoGenerateColumns="False" CanUserResizeColumns="True"
    				GridLinesVisibility="Vertical"  HeadersVisibility="All" Background="White" RowBackground="LightCyan"
    				AlternatingRowBackground="LightBlue" IsReadOnly="True" CanUserSortColumns="True"
    				CanUserReorderColumns="True"  HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" SelectionMode="Extended" AreRowDetailsFrozen="True">
    				<DataGrid.Columns>
    					<DataGridTemplateColumn Header="Name" Width="80" >
    						<DataGridTemplateColumn.CellTemplate>
    							<DataTemplate>
    								<TextBlock Text="{Binding Name_compo}" Width="60" TextWrapping="Wrap"/>
    							</DataTemplate>
    						</DataGridTemplateColumn.CellTemplate>
    					</DataGridTemplateColumn>
    					<DataGridTemplateColumn Header="Model" Width="50">
    						<DataGridTemplateColumn.CellTemplate>
    							<DataTemplate>
    								<TextBlock Width="60" Text="{Binding Model_compo}" TextWrapping="Wrap"/>
    							</DataTemplate>
    						</DataGridTemplateColumn.CellTemplate>
    					</DataGridTemplateColumn>
    					<DataGridTemplateColumn Header="Role" Width="130">
    						<DataGridTemplateColumn.CellTemplate>
    							<DataTemplate>
    								<TextBlock Text="{Binding Role_compo}" TextWrapping="Wrap"/>
    							</DataTemplate>
    						</DataGridTemplateColumn.CellTemplate>
    					</DataGridTemplateColumn>
    					<DataGridTemplateColumn Header="Description" Width="108">
    						<DataGridTemplateColumn.CellTemplate>
    							<DataTemplate>
    								<TextBlock Text="{Binding Descrip_compo}" TextWrapping="Wrap"/>
                                    
    							</DataTemplate>
    						</DataGridTemplateColumn.CellTemplate>
    					</DataGridTemplateColumn>
    
    				</DataGrid.Columns>
                
    			</DataGrid>

    CODE C#

    // le id c le id de l'element selectionner 
    void GETComposant(string id)
            {
    				if(id!=null){				
    		 
    MessageBox.Show("JE suis le composant selectionner!:"+id);
                SqlConnection myConnection = new SqlConnection()
    				
              
                
                try
                {
                    myConnection.Open();
                    SqlCommand myCommand = new SqlCommand("SELECT *FROM [Component].[dbo].[PFE_Component] WHERE name_compo='" + id + "'", myConnection);
                    SqlDataReader myReader = null;
                    myReader = myCommand.ExecuteReader();
    
                    if (myReader.Read())
                    {
    					string Name_compo,Model_compo,Role_compo,Descrip_compo;
    				
    					
    					if(myReader["name_compo"] is System.DBNull) // si le nom de composant dans la base est vide
    					{
    					 Name_compo="No name";
    	                 
    					 Model_compo=(string)myReader["model_compo"];
      					 Role_compo = (string)myReader["role_compo"];	
        				 Descrip_compo = (string)myReader["descrip_compo"];
    					}
    					else{
    						if(myReader["model_compo"] is System.DBNull) // si model de composant est null
    						{
    						    Model_compo="No model";
    	                        Name_compo = (string)myReader["name_compo"];
                                
           						Role_compo = (string)myReader["role_compo"];
                				 Descrip_compo = (string)myReader["descrip_compo"];
    						    
    						   }else{
    							     if(myReader["role_compo"] is System.DBNull)// si le role de composant est null
    								 {
    							       Role_compo="No role";
    					               Name_compo = (string)myReader["name_compo"];
                                       Model_compo=(string)myReader["model_compo"];
                           			   Descrip_compo = (string)myReader["descrip_compo"];
    								 } else{
    								       if(myReader["descrip_compo"] is System.DBNull)// si la description est null 
    									    {
    											Descrip_compo="No description";
    							                 Name_compo = (string)myReader["name_compo"];
                                                 Model_compo=(string)myReader["model_compo"];
                           						 Role_compo = (string)myReader["role_compo"];
                          						 
    										} else // si aucun champs n'est vide
    										    {
    					                         Name_compo =(string)myReader["name_compo"];
                                                 Model_compo=(string)myReader["model_compo"];
                           						 Role_compo =(string)myReader["role_compo"];
                          						 Descrip_compo =(string)myReader["descrip_compo"];
    											}
    								}
    						         
    						         }
    					
    					}
    					
    					
    
    						compo.Add(new Component()
    						{
    							Name_compo=Name_compo,
    							Model_compo=Model_compo,
    							Role_compo=Role_compo,
    							Descrip_compo=Descrip_compo
    						});
    				
    				 
    				    Caracter.ItemsSource=null;
    				 
    				    Caracter.ItemsSource=compo;
    				 
    				
    			     
    				 
    				 
    				 
    				 	
                        
    
                       
    
    
                    }
    
    
                }
                finally
                {
                    myConnection.Close();
    
    
                }
    			}else{
    			    MessageBox.Show("Vous n'avez selectionner aucun composant !!");
    			}
    			
    
    
    
    
    
    
    
            }
    
    
    
    
    
    
    
    public class Component
        {
    
            
            public string Name_compo
            {
                get;
                set;
            }
    
    
            public string Model_compo
            {
                get;
                set;
            }
    
            
            public string Role_compo
            {
                get;
                set;
            }
    
    
            public string Descrip_compo
            {
                get;
                set;
            }
    
           
            
         
        }
    

       

    • Déplacé Aurel Bera jeudi 29 mai 2014 06:37 WPF
    mercredi 28 mai 2014 15:17

Réponses

Toutes les réponses