に従っていないようだ、その条件の一つがトリガー外MultiTriggerは、私がmultitriggerを持っている条件に
<Condition Property="Validation.HasError"
Value="True"/>
ですが、私はnullにエラーテンプレートを設定し、そして唯一のトリガーのセッターのいずれかで行うI
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
を持っている。しかし、時には、私はまだインデックスが範囲外であることを例外を取得何らかの理由で、私は空のエラーコレクションの要素0にアクセスしようとしていることすなわち。
これは、バッキングデータを使って何かをしようとするコントロールで発生するようですが、何もエラーがなくてもツールチップを作成しようとしている原因はわかりません。
編集:できるだけ多くのものを削除しました。以下は残っているものです。例外は、データバインドされたテキストボックスに何かを入力してフォーカスを切り替えるときに発生します。アプリケーションリソースMainWindow.xaml.csで
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError"
Value="True">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
(これは始動ウィンドウである)MainWindow.xamlで
public MainWindow()
{
InitializeComponent();
this.DataContext = new Bar();
}
、関連する結合
下App.xamlで、
<TextBox Text="{Binding Foo, ValidatesOnDataErrors=True}"/>
バー内。
public sealed class Bar : IDataErrorInfo, INotifyPropertyChanged
{
// Standard PropertyChanged, OnPropertyChanged removed
// Foo does have a backing field and notifies in the
// setter but those have been removed for brevity
public string Foo {get;set;}
public string Error
{
get { return ""; }
}
public string this[string columnName]
{
get
{
switch (columnName)
{
case "Foo":
if (string.IsNullOrEmpty(Foo))
return "The foo must not be empty.";
return "";
default:
throw new ArgumentException("columnName");
}
}
}
}
問題を示す関連するコードを投稿すると、質問に役立つ場合があります。 –
うーん、私はやったと思ったが、何とかそれは消えてしまったようだ。私は再びそれを持っている明日を追加します – Jamie
XMLとHTMLの場合は、適切なコードの書式設定を使用する必要があります。それを私が直した。 –