我知道我可以設置該列的樣式並設置工具提示,但我希望在網格列上具有真實的tooltip屬性。 我在創建文本塊之前無法暴露文本塊的工具提示屬性。 這是我的自定義列。在自定義DataGridTextColumn上公開ToolTip DependencyProperty
public class DataGridTextColumn : System.Windows.Controls.DataGridTextColumn
{
public static readonly DependencyProperty TextTrimmingProperty = DependencyProperty.Register(
"TextTrimming", typeof (TextTrimming), typeof (DataGridTextColumn),
new PropertyMetadata(default(TextTrimming)));
/// <summary>
/// HorizontalAlignment Dependency Property.
/// </summary>
public static readonly DependencyProperty HorizontalAlignmentProperty =
DependencyProperty.Register(
"HorizontalAlignment",
typeof (HorizontalAlignment),
typeof (DataGridTextColumn),
new FrameworkPropertyMetadata(HorizontalAlignment.Left, FrameworkPropertyMetadataOptions.AffectsArrange), ValidateHorizontalAlignmentValue);
public DataGridTextColumn()
{
ElementStyle = Application.Current.Resources["DataGridTextStyle"] as Style;
EditingElementStyle = Application.Current.Resources["DataGridEditingTextStyle"] as Style;
}
/// <summary>
/// TextTrimming, only works in read-only mode
/// </summary>
public TextTrimming TextTrimming
{
get { return (TextTrimming) GetValue(TextTrimmingProperty); }
set { SetValue(TextTrimmingProperty, value); }
}
/// <summary>
/// HorizontalAlignment Property.
/// </summary>
public HorizontalAlignment HorizontalAlignment
{
get { return (HorizontalAlignment) GetValue(HorizontalAlignmentProperty); }
set { SetValue(HorizontalAlignmentProperty, value); }
}
internal static bool ValidateHorizontalAlignmentValue(object value)
{
var ha = (HorizontalAlignment) value;
return (ha == HorizontalAlignment.Left
|| ha == HorizontalAlignment.Center
|| ha == HorizontalAlignment.Right
|| ha == HorizontalAlignment.Stretch);
}
protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
{
var element = (TextBlock) base.GenerateElement(cell, dataItem);
element.TextTrimming = TextTrimming;
element.HorizontalAlignment = HorizontalAlignment;
return element;
}
工具提示必須附加到文本塊。
不錯的語法,但問題在於未發生工具提示屬性的綁定,工具提示爲空。我需要設置新元素和工具提示之間的綁定 – 2014-09-11 06:43:39
也許我應該自己回答,但這是工作https://gist.github.com/Martin-Andersen/d801bde4987ef2ce1bec#file-datagridtextcolumn – 2014-09-11 07:32:51
是的,你可以回答你的自己的問題。 :) – Pragmateek 2014-09-11 09:41:19