如何使样式使用其控件中的数据?
<DataGrid AutoGenerateColumns="False"
ColumnWidth="100">
<DataGrid.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="ToolTip" Value="{Binding //тут нужно привязаться к ToolTipText}"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<local:DataGridTextColumnWithHeader
Header="!hello"
ToolTipText="hello!"
/>
</DataGrid.Columns>
</DataGrid>
实施DataGridTextColumnWithHeader:
public class DataGridTextColumnWithHeader : DataGridTextColumn
{
public string ToolTipText
{
get { return (string)GetValue(ToolTipTextProperty); }
set { SetValue(ToolTipTextProperty, value); }
}
public static readonly DependencyProperty ToolTipTextProperty =
DependencyProperty.Register("ToolTipText", typeof(string), typeof(DataGridTextColumnWithHeader));
}
好吧,实际上并没有那么容易,因为
Column-objectsDataGrid不是可视化树的一部分,而且它们也不是那么容易到达。但在您的情况下,您可以为列命名,并通过名称联系:
如果您不想为每一列设置样式,则可以不使用代码隐藏:
这将在加载时仅分配一次工具提示。如果这还不够,您可以手动设置绑定,因为这两个对象都在循环中
OnDGLoaded。