我正在尝试将ToolTip属性绑定到代码中的(Validation.Errors).CurrentItem。我已经使用DataGrid做了这样的事情:
var grid = new FrameworkElementFactory(typeof(Grid));
grid.SetValue(Grid.ToolTipProperty, new Binding() {
RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(DataGridRow), 1),
Path = new PropertyPath("(Validation.Errors).CurrentItem.ErrorContent")
});
这样可行,错误符号出现在带有工具提示的行标题中(某些错误文本)。
当我尝试使用文本框时,工具提示不会出现:
grid.SetValue(Grid.ToolTipProperty, new Binding() {
ElementName = textBox1.Name, // tried with relative source also...
Path = new PropertyPath("(Validation.Errors).CurrentItem.ErrorContent")
});
此致
谷
答案 0 :(得分:2)
看起来您可以使用Binding.Source属性。像这样:
grid.SetValue(Grid.ToolTipProperty, new Binding() {
Source = textBox1,
Path = new PropertyPath("(Validation.Errors).CurrentItem.ErrorContent")
});
答案 1 :(得分:2)
我不确定你在那里需要CurrentItem
我之前从未在代码中完成验证绑定,但我的TextBox验证XAML如下所示:
<Style TargetType="{x:Type TextBox}" x:Key="ValidatingTextBox">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding
Path=(Validation.Errors)[0].ErrorContent,
RelativeSource={x:Static RelativeSource.Self}}" />
</Trigger>
</Style.Triggers>
</Style>