2010-10-27 67 views
0

我有一個Silverlight DataGrid兩欄。這兩個列標題的標題必須與文本框和列標題標題或名稱一起顯示,以便以後可以使用該文本框進行過濾。Silverlight列標題應用標題樣式模板的消除器

所以,我用下面的代碼使用樣式來顯示文本框:

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

,我已經應用該樣式列標題如下:

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

事情是,現在文本框是可見的,但列標題標題或名稱消失?

如何顯示我的列標題以及文本框?

+0

? – Gabe 2010-10-27 14:02:04

+0

不,我沒有使用任何綁定它自動綁定標題以前,但應用這種風格後,我不能看到列標題名稱 – subash 2010-10-27 14:05:09

+0

那麼這將是因爲你的模板只有一個'文本框',沒有什麼在模板中可以像「textblock」或類似的東西一樣顯示標題。 – Gabe 2010-10-27 14:08:58

回答

1

如u說,我剛插入文本塊到模板的StackPanel中和是否使用某種對列標題結合解決了這個問題

的代碼如下

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