2011-01-06 19 views

cevap

3

Bu, DataGridTextColumn & DataGridTextColumn.HeaderStyle kullanılarak yapılabilir. Headerstyle etiketinde, ToolTipService'yi kullanın ve içeriği oluşturulan dinamik değerlere bağlayın. İşte bunun için bir örnek kod ...

 <data:DataGrid.Columns> 
      <data:DataGridTextColumn Header="First Name" Binding="{Binding FName}" > 
       <data:DataGridTextColumn.HeaderStyle> 
        <Style TargetType="dataprimitives:DataGridColumnHeader"> 
         <Setter Property="ContentTemplate"> 
          <Setter.Value> 
           <DataTemplate> 
            <ContentControl Content="{Binding}"> 
             <ToolTipService.ToolTip> 
              <ToolTip Content="Tooltip First" /> 
             </ToolTipService.ToolTip> 
            </ContentControl> 
           </DataTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </data:DataGridTextColumn.HeaderStyle> 
      </data:DataGridTextColumn> 

      <data:DataGridTextColumn Header="Last Name" Binding="{Binding LName}"> 
       <data:DataGridTextColumn.HeaderStyle> 
        <Style TargetType="dataprimitives:DataGridColumnHeader"> 
         <Setter Property="ContentTemplate"> 
          <Setter.Value> 
           <DataTemplate> 
            <ContentControl Content="{Binding}"> 
             <ToolTipService.ToolTip> 
              <ToolTip Content="Tooltip Second"></ToolTip> 
             </ToolTipService.ToolTip> 
            </ContentControl> 
           </DataTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </data:DataGridTextColumn.HeaderStyle> 
      </data:DataGridTextColumn> 

      <data:DataGridTextColumn Header="City" Binding="{Binding City}"> 
       <data:DataGridTextColumn.HeaderStyle> 
        <Style TargetType="dataprimitives:DataGridColumnHeader"> 
         <Setter Property="ContentTemplate"> 
          <Setter.Value> 
           <DataTemplate> 
            <ContentControl Content="{Binding}"> 
             <ToolTipService.ToolTip> 
              <ToolTip Content="Tooltip Third"></ToolTip> 
             </ToolTipService.ToolTip> 
            </ContentControl> 
           </DataTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </data:DataGridTextColumn.HeaderStyle> 
      </data:DataGridTextColumn> 
     </data:DataGrid.Columns> 

    </data:DataGrid> 

</Grid> 

Custdetails .. böyle bir şeydir ..

class Customer 
{ 
    public string LName { set; get; } 
    public string FName { set; get; } 
    public string City { set; get; } 
} 

DataBinding

...

List<Customer> customers = new List<Customer> 
            { 
             new Customer { LName="Alan", FName="Ameen", City="New York" }, 
             new Customer { LName="Forgeard", FName="Steven", City="Mumbai" }, 
             new Customer { LName="Angur", FName="Paul", City="São Paulo" } 
            }; 
dgCustDetails.ItemsSource = customers; 

Bu var başlık ipuçlarını görüntüler ... Dinamik hale getirmek için .. Araç İçi İçeriğini Bindin ile değiştirin kodda yapmak gerekirse,

<data:DataGridTextColumn.HeaderStyle> 
    <Style TargetType="DataGridColumnHeader"> 
    <Setter Property="ToolTipService.ToolTipProperty" 
      Value="Your tool tip here" /> 
    </Style> 
</data:DataGridTextColumn.HeaderStyle> 

Veya: g & istenen değer ...

21

Bu @ olduğundan çok daha fazla basitçe Farukh yanıtını yapılabilir

var style = new Style(typeof(DataGridColumnHeader)); 
style.Setters.Add(new Setter(ToolTipService.ToolTipProperty, 
          "Your tool tip here")); 
column.HeaderStyle = style; 
+0

Bu bana yardımcı oldu, ancak Sütun Başlıkları için varolan stilin üzerine yazılıyor gibi görünüyor. Bir DataGridColumnHeader için varsayılan stili nasıl alabilirim ve stilimi üste yerleştirebilir miyim? – Marlon

+0

Aslında, DataGrid Şablonunda bazı başlık tanımlarım var, stili başlığa uyguladığımda, ızgara tarafından tanımlanan tüm stil önceliklerini göz ardı ediyor gibi görünüyor. – Marlon

+0

Stilin BasedOn özelliğini özel stilinize ayarlamayı denediniz mi? Örneğin. '