L'intestazione della colonna Silverlight Diffica sull'applicazione del modello di stile di intestazione

StackOverflow https://stackoverflow.com/questions/4033865

  •  26-09-2019
  •  | 
  •  

Domanda

Ho un Silverlight DataGrid con due colonne. Le intestazioni di queste due colonne devono essere visualizzate con una casella di testo e un titolo o nome dell'intestazione delle colonne in modo che la casella di testo possa essere utilizzata per il filtraggio in seguito.

Quindi, ho usato il seguente codice per visualizzare la casella di testo usando uno stile:

<Style x:Name="mytemplate"
       x:Key="mytemplate"
       xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
       TargetType="dataprimitives:DataGridColumnHeader">
   <Setter Property="ContentTemplate" >
       <Setter.Value>
           <DataTemplate x:Name="ColHeaderTemplategrid">                      
               <StackPanel>                             
                   <TextBox x:Name="txtfilterBox"  KeyDown="txtfilterBox_KeyDown" Width="40"/>
               </StackPanel>
           </DataTemplate>
       </Setter.Value>
   </Setter>
</Style>

E ho applicato lo stile alle intestazioni della colonna come sotto:

 ((DataGridTextColumn)column[0]).HeaderStyle = mytemplate;
 ((DataGridTextColumn)column[1]).HeaderStyle = mytemplate;

Il fatto è che ora la casella di testo è visibile ma il titolo o il nome dell'intestazione della colonna scompare?

Come faccio a mostrare l'intestazione della mia colonna insieme alla casella di testo?

È stato utile?

Soluzione

Come hai detto, ho appena inserito un blocco di testo nello stackpanel del modello e risolve il problema

Il codice è sotto

<Style x:Name="mytemplate" x:Key="mytemplate"  xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
                            TargetType="dataprimitives:DataGridColumnHeader">
            <Setter Property="ContentTemplate" >
                <Setter.Value>
                    <DataTemplate x:Name="ColHeaderTemplategrid">
                         <StackPanel>
                             <TextBlock Text="{Binding}" ></TextBlock>
                             <TextBox x:Name="txtfilterBox"  KeyDown="txtfilterBox_KeyDown" Width="40"/>
                        </StackPanel>

                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top